springboot项目中引入本地依赖jar包,如何打包到lib文件夹中

系统管理员 2024-03-24 15:25 150阅读 0赞

前言:
工作中,碰到过springboot框架构建的java web项目,需要集成第三方推送功能,于是使用到了小米推送服务,下载了相关jar包。项目中引入本地jar,问题不大,编写完代码后,通过测试类测试,也没问题。然后就准备打包部署到开发服上。由于项目是通过tomcat部署的,所以打包方式是打成war包。打包后上传到开发服,启动成功后去测试编写的推送接口,发现失败了。

通过分析发现,打包后的war中存放项目依赖jar的lib目录中并没有本地引入的推送相关的jar包。折腾了半个小时,才解决了问题。解决后才发现,其实是对maven这块的基础知识有点遗忘了。这里总结下springboot项目引入本地jar包,如何通过maven打包将jar打进lib文件夹中:

1.首先在resources目录下创建一个lib文件夹,将需要的jar包放入lib文件夹中

在这里插入图片描述

2.在pom.xml文件中,添加依赖坐标。注意:这里由于导入的本地jar,所以< dependency></ dependency>标签中需要添加

  1. <dependency>
  2. ...
  3. <!-- 表示当前jar是外部引入的,maven不会在repository查找它 -->
  4. <scope>system</scope>
  5. <!-- 指定引入的外部jar存放的路径,一般将jar包放在项目的某个目录下,通过相对路径指定 -->
  6. <systemPath>...</systemPath>
  7. </dependency>

在这里插入图片描述

3.在pom的< build></ build>标签中还需进行如下修改

  1. <build>
  2. <finalName>xxxxxx</finalName>
  3. <plugins>
  4. <!--配置将第三方jar打进jar包中,跟<packaging>jar</packaging>配合,如果不写,springboot默认是打成jar包-->
  5. <!--<plugin>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-maven-plugin</artifactId>
  8. <configuration>
  9. <!-- 项目中单独引入第三方jar时,includeSystemScope值要为true
  10. <includeSystemScope>true</includeSystemScope>
  11. </configuration>
  12. </plugin>-->
  13. <!-- 打war包 -->
  14. <plugin>
  15. <groupId>org.apache.maven.plugins</groupId>
  16. <artifactId>maven-war-plugin</artifactId>
  17. <version>3.2.2</version>
  18. <configuration>
  19. <webResources>
  20. <!-- 配置将第三方jar打进war包中,跟<packaging>war</packaging>配合 -->
  21. <webResource>
  22. <directory>${pom.basedir}/src/main/resources/lib/</directory>
  23. <targetPath>WEB-INF/lib/</targetPath>
  24. <includes>
  25. <include>**/*.jar</include>
  26. </includes>
  27. </webResource>
  28. </webResources>
  29. </configuration>
  30. </plugin>
  31. </plugins>
  32. </build>

根据项目需要,打成jar包部署或war包部署,需要引入不同的插件,添加不同的配置。如果需要打成war包,不要忘了在pom.xml文件中添加< packaging >war</ packaging>配置。

4.打包部署后测试验证

可以通过调用相关接口测试,也可直接观察部署包中lib文件夹中是否存在引入的本地jar来判定

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,150人围观)

还没有评论,来说两句吧...

相关阅读