SpringBoot分离打Jar包的两种方式
admin
2024-02-10 08:31:55

SpringBoot分离打Jar包的两种方式

方式一:基于maven-jar-plugin

此方式基于这个小伙伴的配置改的:https://blog.xlsea.cn/archives/710/

注意

  • 配置中的插件 spring-boot-maven-plugin 用不到的,仅做说明放这里
  • 放了几个 systemScopedependency 作参考
  • 所有依赖包(包括systemScope),会通过插件 maven-dependency-plugin 自动复制到 lib 目录
  • 所有资源文件,会通过插件 maven-resources-plugin 自动复制到 config 目录
  • 此方式打包后,不需要再指定参数启动 -Dloader.path=lib,config
  • 打包完后部署需要的文件清单:(在 target/ 目录下都可以看到)
    • config/**:所有resources下的资源文件
    • lib/**:所有lib包,包括本地依赖
    • xxx.jar:应用Jar
  • 运行:java -jar xxx.jar

简略版配置

libconfigxxxorg.jeecg.JeecgSystemApplication${final-name}org.apache.maven.pluginsmaven-compiler-plugin1.81.8UTF-8org.apache.maven.pluginsmaven-surefire-plugintrueorg.springframework.bootspring-boot-maven-plugintrueorg.apache.maven.pluginsmaven-jar-plugintrue${lib-path}/false${main-class}./${config-path}/ lib/zwdd-1.2.0.jar lib/spire-10.jar${project.build.directory}org.apache.maven.pluginsmaven-dependency-plugincopy-dependenciespackagecopy-dependencies${project.build.directory}/${lib-path}/org.apache.maven.pluginsmaven-resources-plugincopy-resourcespackagecopy-resourcesfalsesrc/main/resources**/*truesrc/main/resources*.yml${project.build.directory}/${config-path}src/main/javafalse**/*.xml**/*.json**/*.ftlsrc/main/resourcesfalse**/*src/main/resourcestrue*.yml

完整配置(带部分注释)

org.jeecgframework.bootjeecg-boot-parent2.4.04.0.0jeecg-boot-module-systemaliyunaliyun Repositoryhttp://maven.aliyun.com/nexus/content/groups/publicfalsecom.spirespire10system${project.basedir}/../lib/Spire.Doc.jarcom.zwdd.apizwdd1.2.0system${project.basedir}/../lib/zwdd-sdk-java-1.2.0.jarlibjarconfigxxxorg.jeecg.JeecgSystemApplication${final-name}org.apache.maven.pluginsmaven-compiler-plugin1.81.8UTF-8org.apache.maven.pluginsmaven-surefire-plugintrueorg.springframework.bootspring-boot-maven-pluginrepackagetrue${main-class}truetrue${profile.name}${project.build.directory}/${jar-path}org.apache.maven.pluginsmaven-jar-plugintrue${lib-path}/false${main-class}./${config-path}/ lib/zwdd-1.2.0.jar lib/spire-10.jar${project.build.directory}org.apache.maven.pluginsmaven-dependency-plugincopy-dependenciespackagecopy-dependencies${project.build.directory}/${lib-path}/org.apache.maven.pluginsmaven-resources-plugincopy-resourcespackagecopy-resourcesfalsesrc/main/resources**/*truesrc/main/resources*.yml${project.build.directory}/${config-path}src/main/javafalse**/*.xml**/*.json**/*.ftlsrc/main/resourcesfalse**/*src/main/resourcestrue*.yml

方式二:基于spring-boot-maven-plugin

注意

  • 这种方式打包出来的Jar基于插件提供的类加载器启动:org.springframework.boot.loader.PropertiesLauncher
  • 所有依赖包(包括systemScope),会通过插件 maven-dependency-plugin 自动复制到 lib 目录
  • 所有资源文件,会通过插件 maven-resources-plugin 自动复制到 config 目录
  • 此方式打包后,需要指定参数启动 -Dloader.path=lib路径,config路径
  • 打包完后部署需要的文件清单:(在 target/ 目录下都可以看到)
    • config/**:所有resources下的资源文件
    • lib/**:所有lib包,包括本地依赖
    • xxx.jar:应用Jar
  • 运行:java -Dloader.path=lib,config -Dspring.profiles.active=dev -jar main.jar

配置参考

mainorg.apache.maven.pluginsmaven-compiler-plugin1.81.8UTF-8org.mapstructmapstruct-processor1.4.1.Finalorg.projectlomboklombok1.18.12org.springframework.bootspring-boot-maven-pluginorg.jeecg.JeecgSystemApplicationfalsefalseZIPnothingnothingrepackageorg.apache.maven.pluginsmaven-dependency-plugincopy-dependenciespackagecopy-dependencies${project.build.directory}/lib/org.apache.maven.pluginsmaven-resources-plugincopy-resourcespackagecopy-resourcesfalsesrc/main/resources**/*src/main/resourcestrue*.xml*.yml*.properties${project.build.directory}/configsrc/main/javafalse**/*.xml**/*.json**/*.ftlsrc/main/resourcestrue*.yml*.txt

附录:参考链接

  • SpringBoot项目分离打包
  • maven-jar-plugin插件对scope="system"依赖的处理
  • https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/htmlsingle/
  • https://www.kancloud.cn/zhangdaiscott/jeecg-boot/3043463
  • Springboot jar包外指定配置文件及原理
  • Spring Boot之application.properites的failed to convert java.lang.String to java.lang.Integer问题解决
  • Maven maven-dependency-plugin包含本地依赖包
  • Spring Boot 分离资源文件打包
  • https://blog.csdn.net/weixin_40461281/article/details/115905734
  • https://www.jianshu.com/p/0277b6a17892

相关内容

热门资讯

赤水性价比粮食酒推荐:2025... 赤水性价比粮食酒推荐:2025年酱香酒选购全攻略 一、开篇背景与市场痛点 2025年的赤水河流域酒类...
非白酒板块11月19日跌0.3... 证券之星消息,11月19日非白酒板块较上一交易日下跌0.33%,*ST椰岛领跌。当日上证指数报收于3...
以运河文化赋能产业发展|古贝春... 11月17日至19日,以“新质开新局,聚力创未来”为主题的2025年第六届中国白酒黄淮核心产区高质量...
深夜小酌的灵魂搭档:油炝脆骨,... 油炝脆骨是一道充满锅气与烟火气息的家常菜,以其爽脆的口感和浓郁的香辣风味深受许多人喜爱。这道菜的制作...
初中毕业新征程:为什么西点烘焙... 站在初中毕业的人生路口,许多女孩都在思考:哪条路能通往一个既美好又独立的未来?如果有一条道路,能将女...