参考资料
Maven项目引用本地jar涉及scope配置_includesystemscope-CSDN博客
问题
新建maven工程,通过systempath引入本地的jar,将工程打包后,导入其他工程,会提示找不到之前本地jar的类。
<dependency>
<groupId>com.org</groupId>
<artifactId>jacoco-cli</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/org.jacoco.cli-0.8.7-SNAPSHOT-nodeps.jar</systemPath>
</dependency>
解决方案
正确的做法: 在打包jar的时候,需要将${project.basedir}/lib目录也打包
做法1:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
做法2:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArguments>
<extdirs>lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
打包war
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<!-- 存放本地jar的文件夹 src/main/resources/lib -->
<directory>${project.basedir}/src/main/resources/lib</directory>
<!-- 目标lib目录 WEB-INF/lib/ -->
<targetPath>WEB-INF/lib/</targetPath>
<includes>
<!-- 匹配所有jar包 -->
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>