SpringBoot分离打Jar包的两种配置方式

这篇文章主要介绍了SpringBoot分离打Jar包的两种配置方式,方式一是基于maven-jar-plugin,方式二是基于spring-boot-maven-plugin,文中结合实例代码给大家介绍的非常详细,需要的朋友可以参考下

SpringBoot分离打Jar包的两种方式

方式一:基于maven-jar-plugin

此方式基于这个小伙伴的配置改的:https://www.0133.cn/article/188606.htm

注意

  • 这种方式打包出来的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

简略版配置

  libconfigxxxorg.jeecg.JeecgSystemApplication ${final-name}  org.apache.maven.pluginsmaven-compiler-plugin 1.81.8UTF-8 org.apache.maven.pluginsmaven-surefire-plugin true org.springframework.bootspring-boot-maven-plugin true org.apache.maven.pluginsmaven-jar-plugin   true${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-plugin  copy-dependenciespackage copy-dependencies ${project.build.directory}/${lib-path}/ org.apache.maven.pluginsmaven-resources-plugin  copy-resourcespackage copy-resources   falsesrc/main/resources **/* truesrc/main/resources *.yml${project.build.directory}/${config-path}  src/main/javafalse **/*.xml**/*.json**/*.ftl src/main/resourcesfalse **/* src/main/resourcestrue *.yml

完整配置(带部分注释)

  org.jeecgframework.bootjeecg-boot-parent2.4.04.0.0jeecg-boot-module-system  aliyunaliyun Repositoryhttp://maven.aliyun.com/nexus/content/groups/public false  com.spirespire10system${project.basedir}/../lib/Spire.Doc.jar com.zwdd.apizwdd1.2.0system${project.basedir}/../lib/zwdd-sdk-java-1.2.0.jar libjarconfigxxxorg.jeecg.JeecgSystemApplication ${final-name}  org.apache.maven.pluginsmaven-compiler-plugin 1.81.8UTF-8 org.apache.maven.pluginsmaven-surefire-plugin true org.springframework.bootspring-boot-maven-plugin   repackage true${main-class}truetrue${profile.name}${project.build.directory}/${jar-path} org.apache.maven.pluginsmaven-jar-plugin    true${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-plugin  copy-dependenciespackage copy-dependencies ${project.build.directory}/${lib-path}/ org.apache.maven.pluginsmaven-resources-plugin  copy-resourcespackage copy-resources   falsesrc/main/resources **/* truesrc/main/resources *.yml${project.build.directory}/${config-path}  src/main/javafalse **/*.xml**/*.json**/*.ftl src/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

配置参考

  main  org.apache.maven.pluginsmaven-compiler-plugin 1.81.8UTF-8  org.mapstructmapstruct-processor1.4.1.Final org.projectlomboklombok1.18.12 org.springframework.bootspring-boot-maven-plugin org.jeecg.JeecgSystemApplicationfalsefalseZIP  nothingnothing   repackage org.apache.maven.pluginsmaven-dependency-plugin  copy-dependenciespackage copy-dependencies ${project.build.directory}/lib/ org.apache.maven.pluginsmaven-resources-plugin  copy-resourcespackage copy-resources   falsesrc/main/resources **/* src/main/resourcestrue *.xml*.yml*.properties${project.build.directory}/config  src/main/javafalse **/*.xml**/*.json**/*.ftl src/main/resourcestrue *.yml*.txt

附录:参考链接

到此这篇关于SpringBoot分离打Jar包的两种方式的文章就介绍到这了,更多相关SpringBoot打Jar包内容请搜索0133技术站以前的文章或继续浏览下面的相关文章希望大家以后多多支持0133技术站!

以上就是SpringBoot分离打Jar包的两种配置方式的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java