首先要下载所需jar包到本地,然后复制下载好的jar到项目中,
然后修改项目的pom文件,将项目里的jar包引入到maven
<dependency>
<groupId>slf4j.api</groupId>
<artifactId>slf4japi</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${project.basedir}\src\main\resources\lib\slf4j-api-1.7.25.jar</systemPath>
</dependency>
需要注意的是,version一定要填写不然会报错
scope=system表示此依赖是来自外部jar,而不是maven仓库。当scope设置为system时,systemPath属性才会生效,systemPath为一个物理文件路径,来指定依赖的jar其物理磁盘的位置。
${project.basedir}代表根目录。
Jar执行解决方案:
将jar引入好之后,要将includeSystemScope参数设置为true不然打包时会报错
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope><!--当scope为system时增加配置-->
</configuration>
</plugin>
说明:重要的是includeSystemScope为true。
总结
(1)如何添加外部jar包:指定score=system,并且配置sysemPath。
(2)如何打包外部jar包:使用spring-boot-maven-plugin,并且配置属性includeSystemScope为true。
War执行解决方案:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/src/main/resources/lib</directory>
<targetPath>WEB-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
directory: lib包所在路径
targetPath:编译后lib包中jar位置
原因:在项目中引入本地包在打包的时候会把本地引入的jar打包到lib-provided文件夹中,但tomcat只扫描lib中的jar所以在请求接口时会发生NoClassDefFoundError错误,所以要在编译时指定本地jar问价的位置
将本地项目中新增的jar包,上传到git
需要修改项目中.gitignore文件,删除*.lib与*.jar
删除文件中*.lib与*.jar之后即可上传jar到git,不然会把lib文件夹与jar包过滤掉
版权归原作者 zlfjavahome 所有, 如有侵权,请联系我们删除。