Spring Boot 增加jar包

2021-02-08 03:15

阅读:573

标签:resources   技术   配置   开发   使用   控制   不同   lib   basedir   

一:问题场景

    在开发过程中,我们有时会遇到Maven中央库没有的jar包,比如公司自己开发的而又没有放入公司私库的jar包,这时就不能通过三围在pom中直接引入。那么怎么在项目中引入这些本地或第三方jar包呢?

 

二:解决方法

    常用的解决方法主要有两种。

    第一种是将本地jar包安装在本地maven库。这种方法简单方便,以后其他项目需要引入时不需要再次安装。如果没有放入公司私库,则不适合协同开发,比如一位同事在本地安装了这个jar包,另一位同事通过SVN或git将代码下载下来后,由于本地库没有安装该jar包,可能会报错。

    第二种是将本地jar包放入项目目录中。这种方法解决了第一种方法中的问题,但需要在pom文件中加上少许配置,这种方法根据将项目打包成jar和war包而略有不同。

 

三:详细方法

(1)安装在本地maven库

    假设我们需要引入的包为 myjar-1.0.jar

(1.1)打开cmd,进入myjar-1.0.jar所在的目录

(1.2)执行如下命令:mvn install:install-file -Dfile=myjar-1.0.jar -DgroupId=com.ws.sample -DartifactId=myjar -Dversion=1.0 -Dpackaging=jar

注意:install:install-file 中-file与install之间没有空格,三围可以根据自己需求设置

技术图片

技术图片

然后去本地资源库看下是否有相应文件

技术图片

(1.3)在pom依赖中引入安装的jar包

 技术图片

第一种方法介绍完毕

 

 

(2)本地jar包放入项目目录中(项目打包成jar)

 (2.1)jar包结构

技术图片

技术图片

 

(2.2)在本地项目目录中建一个目录专门来放jar文件,位置可根据需求设置,如项目根目录下建一个lib目录,并将本地jar包放入lib目录下。

技术图片

(2.3)pom依赖中加入如下配置

技术图片

说明:basedir是自带变量,指的是当前项目的绝对路径

 此时,在项目中使用myjar-1.0.jar包中类完全没有问题,但是我们来看看打包后结果:

技术图片

 

 在mvn clean package将项目打包成jar包后,BOOT-INF\lib目录下并没有我们引入的myjar-1.0.jar包

 这时,还需要在pom中加入如下配置

 技术图片

 再次打包,mvn clean package打包后结果:

技术图片

在使用mvn clean package将项目打包成jar包后,BOOT-INF\lib目录下出现了我们引入的myjar-1.0.jar包

项目引入本地jar包并打包成jar包的方法介绍完毕,2.4节将介绍一种和本节相似的方法。

 

(2.4)通过资源来控制打包

技术图片

注意:第二个resource不能少,否则src/main/resources目录下资源不会被打包进项目jar包

此种方法也需要配置spring-boot-maven-plugin,只是相对2.3中配置去掉configuration的配置,这种方法个人感觉没有2.3节方便

 

(3)项目打包成war包

   (3.1)war包结构

技术图片

技术图片

(3.2)我们按照第2节中方法,将项目打包成war包,而不是jar包,看看打包后结果:

技术图片

    发现按照打包jar包的方法打包成war包时,本地jar文件并没有打包进来。

(3.3)在pom中添加如下插件

技术图片

说明:插件将lib目录下的本地jar包打包进WEB-INF/lib目录

mvn clean package,再次将项目打包成war包,再次看下打包结果:

技术图片

 

 本地myjar-1.0.jar被打包进项目war包的lib目录了。

Spring Boot 增加jar包

标签:resources   技术   配置   开发   使用   控制   不同   lib   basedir   

原文地址:https://www.cnblogs.com/zhuyeshen/p/12773626.html


评论


亲,登录后才可以留言!