一、背景
在開發(fā)釘釘?shù)谌狡髽I(yè)應(yīng)用登錄時,需要引用釘釘提供的JAR包,但倉庫沒有提供,只能采用本地文件的方式引入

image.png
POM文件:
//該工程以WAR包形式部署
<packaging>war</packaging>
<dependency>
<groupId>com.taobao.top</groupId>
<artifactId>top-api-sdk-dev</artifactId>
<version>dingtalk-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${pom.basedir}/lib/taobao-sdk-java-auto_1479188381469-20180525.jar</systemPath>
</dependency>
<dependency>
<groupId>com.taobao.top</groupId>
<artifactId>lippi-oapi-encrpt</artifactId>
<version>dingtalk-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${pom.basedir}/lib/lippi-oapi-encrpt.jar</systemPath>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
采用官方demo中采用的spring-boot-maven-plugin在打包時將本地依賴jar包引入JAR包。
但本工程以WAR包形式打包,雖然依賴也能打出來,但是打在WEB-INF/lib-provided文件夾而不是WEB-INF/lib文件夾中,導(dǎo)致TOMCAT部署的時候找不到JAR包中的引用類。

image.png
解決
采用如下插件,編譯階段將scope為system的jar包打入war包中
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
<includeScope>system</includeScope>
</configuration>
</execution>
</executions>
</plugin>

image.png