出现问题
使用spring-boot-maven-plugin时,执行mvn install 默认安装的是可以执行的jar包,解压入下图,会把相关的文件放在BOOT-INF里面,这个时候,在其他项目引入时,提示找不到类。
这时,将源码工程导入到同一个ecplise中,在maven依赖库中出现的时一个目录,而不是期待的jar包文件,如下图
这个时候,直接运行引入这个jar包的工程,项目没有问题,但当执行mvn package打包引入这个jar的工程时,会出现又找不到相应的类文件,因此,此方法只能在编译调试的时候可以采用这个方法。
那么正式环境,或者只想提供jar包给第三方用,又要怎么操作呢?
这个时候,我们需要使用如下命名来解决,具体操作如下:
解决步骤
细心的朋友可以发现,在spring boost 的target
目录下又两个jar文件,一个是 .jar
,一个是.jar.original
,其中.jar 是可以执行的jar包,默认会安装这个包到本地仓库,此时其它工程就会出现,找不到相关类,如果需要提供给其它工程用时,就不能用此jar包,应该使用.jar.original
的jar包。
具体做法有两种:(推荐使用第一种)
第一种,使用命令安装
进入需要安装的jar包:GMTP-1.0.0.jar.original
目录中
执行如下命令安装即可:
mvn install:install-file -Dfile=GMTP-1.0.0.jar.original -DgroupId=com.prettylearn -DartifactId=GMTP -Dversion=1.0.0 -Dpackaging=jar
备注:
以上命令中各个参数务必要与pom.xml的相应值保持一致
-Dfile=GMTP-1.0.0.jar.original 需要安装的jar包
-DgroupId=com.prettylearn 对应的groupId
-DartifactId=GMTP 对应的:artifactId
-Dversion=1.0.0 对应的:version
-Dpackaging=jar 对应的:packaging
也可以将命令写成 .bat
或.sh
文件,直接运行即可。
第二种,使用eclipse的maven install安装
此时,本地仓库中已经安装一个可执行jar包文件。这个时候,我们只要替换掉这个jar包文件即可。
具体步骤:
1.将GMTP-1.0.0.jar.original
更改名称为GMTP-1.0.0.jar
2.找到对应的本地仓库位置,直接替换GMTP-1.0.0.jar