一、场景说明
在开发中,有时需要引入自有定义的jar包(比如:公司内自有的公共模块),而公司又没有搭建私有 maven 仓库。引入自定义包有一下几种方式:
- 将自定义包导入开发者电脑的maven仓库,再像其他包的引用方式引入到项目中
这种方式有明显的不方便之处:所有开发者都要先获取到此自定义的包,并按指定的名称导入到自己的maven仓库中。引入自定义包命令示例如下:
mvn install:install-file -Dfile=D:\ojdbc7.jar -DgroupId=com.tech4j.driver -DartifactId=oracle-connector-java -Dversion=12.1 -Dpackaging=jar
- 将自定义包放在项目源码里
这种方式会使项目源码体积变大,但所有人开发者不需要做特殊处理,获取到代码可以直接运行。
本文主要对方式二进行说明。
二、配置说明
1、引入自定义包
1)、将自定义包放在项目中,假设放在 /resources/lib 目录下,文件名为:xxxx-1.0.jar。
2)、配置 pom.xml 文件,引入自定义的文件:
<dependency>
<groupId>xxxx</groupId>
<artifactId>xxxx</artifactId>
<version>1.0</version>
<systemPath>${basedir}/src/main/resources/lib/xxxx-1.0.jar</systemPath>
<scope>system</scope>
</dependency>
至此,就可以正常使用 xxxx-1.0.jar包了。
2、配置打包时包含自定义包
到目前为止,开发是没有问题,但是通过命令 mvn package 打包后,会发现打包后的 BOOT-INF\lib(war打包方式在 WEB-INF/lib-provided 目录下) 下并没有包含我们引入的自定义包。在 pom.xml 加入以下配置:
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
详细配置如下:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
再次打包时,就可看到新打的包中包含自定义包。