Maven导入本地第三方jar包汇总
项目场景:
maven项目使用到研发公司私有jar,没有依赖需自行下载到本地使用
问题描述:
添加本地jar项目正常运行,打包打包出现问题。
具体问题有几种:本地jar配置打包失败、打包成功但并未将本地jar打入包中,导致运行出错java.lang.NoClassDefFoundError
解决方案:
1、项目中新建libs文件夹,将第三方jar放入其中,添加到pom文件
<dependency>
<groupId>ag</groupId>
<artifactId>ag</artifactId>
<version>2.1.5</version>
<scope>system</scope>
<systemPath>${pom.basedir}/libs/ag.jar</systemPath>
<!--systemPath项目中存放第三方jar路径,${pom.basedir}表示项目路径,
原来使用的是${project.basedir},但是容易报依赖指向错误-->
</dependency>
2、添加修改插件配置
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<!--修改版本,不修改容易出现Using 'UTF-8' encoding to copy filtered resources.错误-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
</plugin>
<!--配置本地jar打包存放,打包时将本地jar同时打进去-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>${project.artifactId}</warName>
<webResources>
<resource>
<directory>lib/</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
注:若上述配置还出现Using ‘UTF-8’ encoding to copy filtered resources.错误,可在properties配置
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>