SpringBoot系列:打包剥离第三方依赖jar包

柔情只为你懂 2022-05-15 03:59 772阅读 0赞

1、 pom.xml中加入配置并修改mainClass路径为自己项目的主函数路径:

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-maven-plugin</artifactId>
  6. <configuration>
  7. <fork>true</fork> <!-- 热部署 -->
  8. <includes> <!-- 排除三方包,通过maven-jar形式单独打依赖包 -->
  9. <include>
  10. <groupId>nothing</groupId>
  11. <artifactId>nothing</artifactId>
  12. </include>
  13. </includes>
  14. </configuration>
  15. </plugin>
  16. <plugin>
  17. <groupId>org.apache.maven.plugins</groupId>
  18. <artifactId>maven-jar-plugin</artifactId>
  19. <configuration>
  20. <archive>
  21. <manifest>
  22. <addClasspath>true</addClasspath>
  23. <classpathPrefix>lib/</classpathPrefix>
  24. <mainClass>springboot主函数全路径</mainClass>
  25. </manifest>
  26. </archive>
  27. <excludes>
  28. <exclude>application*.properties</exclude> <!-- 业务jar中过滤applicationproperties文件,在jar包外控制 -->
  29. </excludes>
  30. </configuration>
  31. </plugin>
  32. <plugin>
  33. <groupId>org.apache.maven.plugins</groupId>
  34. <artifactId>maven-dependency-plugin</artifactId>
  35. <executions>
  36. <execution>
  37. <id>copy-lib</id>
  38. <phase>prepare-package</phase>
  39. <goals>
  40. <goal>copy-dependencies</goal>
  41. </goals>
  42. <configuration>
  43. <outputDirectory>${project.build.directory}/lib</outputDirectory>
  44. <overWriteReleases>false</overWriteReleases>
  45. <overWriteSnapshots>false</overWriteSnapshots>
  46. <overWriteIfNewer>true</overWriteIfNewer>
  47. <includeScope>compile</includeScope>
  48. </configuration>
  49. </execution>
  50. </executions>
  51. </plugin>
  52. </plugins>
  53. </build>

2、执行mvn install后项目target目录效果如下:

70

3、服务器部署:

70 1

其中springboot对于配置文件读取有如下方式:

  1. 1、读取jar包同级目录下的config目录中的properties文件,优先级最高;
  2. 2、读取jar包同级目录下的properties文件,优先级次之;
  3. 3、读取classpath下的config文件夹中的properties文件,优先级第三;
  4. 4、在classpath下直接放配置文件,优先级最低。

4、启动服务,测试功能

发表评论

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

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

相关阅读

    相关 gradleJar依赖统一管理

    1. 背景 一个gradle的工程中往往包含很多的子工程,每个子工程都有其自己的Jar包依赖。现实情况是各个子工程对jar包的引入都是比较随意的,版本号各式各样,如何统一