使用pom文件scope的system属性
比如要引入淘宝的sdk: taobao-sdk-java.jar
- 这里在project的根目录新建lib文件夹,将jar放进去
pom.xml
中引入
注意:<dependency>
<groupId>dingding</groupId>
<artifactId>dingding</artifactId>
<version>2.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/taobao-sdk-java.jar</systemPath>
</dependency>
- groupId:自定义
- artifactId:自定义
- version:自定义
- scope:必须是system
- systemPath:jar包的路径(idea编写的时候会有提示的)
- 通过上述方式,在开发环境没有什么问题,不会存在什么包找不到等情况但是,maven project部署一般打包发布,所以打包是需要额外配置的
- 处理打包
打包的时候需要做如下配置,需要通过resource标签引入,位置build→resources→resource
<build>
<resources>
<resource>
<directory>lib</directory>
<targetPath>/BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</build>
- directory:指定lib文件夹的位置,由于是相对工程根目录,所以直接写上lib即可
- targetPath:打包到的文件夹位置,写上BOOT-INF/lib即可,或者是WEB-INF/lib。【斜杠(/)加不加都行,如果是mac的话写./】
- includes:一般都是以jar结尾,就写*/.jar
较为完整的pom.xml
<dependency>
<groupId>dingding</groupId>
<artifactId>dingding</artifactId>
<version>2.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/taobao-sdk-java-auto_1479188381469-20190628.jar</systemPath>
</dependency>
<build>
<resources>
<resource>
<directory>lib</directory>
<targetPath>/BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</build>
- SpringBoot打包时引入本地的jar,SpringBoot的插件有个简单的方式
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--引入本地jar-->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>