出现问题

使用spring-boot-maven-plugin时,执行mvn install 默认安装的是可以执行的jar包,解压入下图,会把相关的文件放在BOOT-INF里面,这个时候,在其他项目引入时,提示找不到类。




spring-boot-maven-plugin 安装本地jar 包_JDK


image.png


这时,将源码工程导入到同一个ecplise中,在maven依赖库中出现的时一个目录,而不是期待的jar包文件,如下图




spring-boot-maven-plugin 安装本地jar 包_通用实践_02


image.png


这个时候,直接运行引入这个jar包的工程,项目没有问题,但当执行mvn package打包引入这个jar的工程时,会出现又找不到相应的类文件,因此,此方法只能在编译调试的时候可以采用这个方法。

那么正式环境,或者只想提供jar包给第三方用,又要怎么操作呢?

这个时候,我们需要使用如下命名来解决,具体操作如下:

解决步骤

细心的朋友可以发现,在spring boost 的​​target​​目录下又两个jar文件,一个是 ​​.jar​​,一个是​​.jar.original​​,其中.jar 是可以执行的jar包,默认会安装这个包到本地仓库,此时其它工程就会出现,找不到相关类,如果需要提供给其它工程用时,就不能用此jar包,应该使用​​.jar.original​​的jar包。




spring-boot-maven-plugin 安装本地jar 包_通用实践_03


image.png


具体做法有两种:(推荐使用第一种)

第一种,使用命令安装

进入需要安装的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的相应值保持一致




spring-boot-maven-plugin 安装本地jar 包_JDK_04


image.png

-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​