弹簧引导打jar包如何分离自由和资源

  介绍

小编这次要给大家分享的是弹簧引导打jar包如何分离自由和资源、文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

<强>为什么要配置,依赖文件分离:

1。在传统jar包中,所有文件都打包到一个jar包中,jar非常臃肿,在进行服务更新部署时非常不便,而且传输不稳定时导致传输失败。如果过实行文件分离,在依赖不改变的情况下,仅仅上传更新后的编译文件是非常方便的。

如果要修改一些配置文件:属性,xml,静态文件等可以直接在服务器上编辑。

<强>那么怎么实行配置,依赖文件分离呢?

插件介绍

    <李> maven-jar-plugin这个插件式专门用来打包用的,可以配置需要打包进去的文件,程序的入口类等。 <李> maven-resources-plugin这个插件是用来拷贝资源文件的。 <李> maven-maven-dependency-plugin这个插件是用来拷贝依赖库的。 <李> maven-assembly-plugin可以说包含了以上插件的功能,但是可以做到更精细的控制。 <李> spring-boot-maven-plugin这个不用说,springboot项目最重要的插件,整个项目的打包处理过程还是要依附于它。
      李,

打包成可执行jar,不仅仅局限SpringBoot项目(主入口函数存在)

maven-jar-plugin插件打包jar

在pom文件中配置,但是这样依赖的jar并不会打进来(后面会有解决方法),适用不需要依赖文件的项目。

 & lt; plugin>
  & lt; groupId> org.apache.maven.plugins
  & lt; artifactId> maven-jar-plugin
  & lt; version> 2.3 & lt;/version>
  
  
  & lt; configuration>
  & lt; archive>
  & lt; manifest>
  
  & lt; !——是否添加依赖——比;
  & lt; addClasspath> true
  
  & lt; !——设置启动类——比;
  & lt; mainClass> xxx.xxx.Main
  
  & lt;/manifest>
  & lt;/archive>
  & lt; !——设置生成jar输出位置——比;
  & lt; outputDirectory> $ {project.build.directory} & lt;/outputDirectory>
  
  & lt;/configuration>
  & lt;/plugin>

maven-assembly-plugin插件打包jar

 & lt; plugin>
  & lt; artifactId> maven-assembly-plugin
  & lt; configuration>
  
  & lt; !——不添加AssemblyId——比;
  & lt; appendAssemblyId> false
  & lt; descriptorRefs>
  & lt; !——配置打包的时候一并打包依赖jar——比;
  & lt; descriptorRef> jar-with-dependencies
  & lt;/descriptorRefs>
  & lt; archive>
  & lt; manifest>
  & lt; !——入口类——比;
  & lt; mainClass> xxx.xxx.Main
  & lt;/manifest>
  & lt;/archive>
  & lt;/configuration>
  & lt; executions>
  & lt; execution>
  & lt; id> make-assembly
  & lt; !——绑定生命周期——比;
  & lt; phase> package
  & lt; goals>
  & lt; !——执行汇编——比;
  & lt; goal> assembly
  & lt;/goals>
  & lt;/execution>
  & lt;/executions>
  & lt;/plugin> 

打包SpringBoot项目

方案一,

& lt; plugins>   & lt; !——打包jar——比;   & lt; plugin>   & lt; groupId> org.apache.maven.plugins   & lt; artifactId> maven-jar-plugin   & lt; configuration>      & lt; archive>   & lt; manifest>   & lt; addClasspath> true   & lt; !——清单。MF中- path加入前缀——比;   & lt; classpathPrefix> lib/& lt;/classpathPrefix>   & lt; !——jar包不包含唯一版本标识——比;   & lt; useUniqueVersions> false   & lt; !——指定入口类——比;   & lt; mainClass> xxx.xxx.Application   & lt;/manifest>   & lt; manifestEntries>   & lt; !——清单。MF中- path加入资源文件目录——比;   & lt; Class-Path>/resources   & lt;/manifestEntries>   & lt;/archive>   & lt; outputDirectory> $ {project.build.directory}/dis   & lt;/configuration>   & lt;/plugin>      & lt; !——拷贝依赖copy-dependencies——比;   & lt; plugin>   & lt; groupId> org.apache.maven.plugins   & lt; artifactId> maven-dependency-plugin   & lt; executions>   & lt; execution>   & lt; id> copy-dependencies   & lt; phase> package   & lt; goals>   & lt; goal> copy-dependencies   & lt;/goals>   & lt; configuration>   & lt; outputDirectory>   $ {project.build.directory}/说/lib/& lt;/outputDirectory>   & lt;/configuration>   & lt;/execution>   & lt;/executions>   & lt;/plugin>      & lt; !——拷贝资源文件copy-resources——比;   & lt; plugin>   & lt; artifactId> maven-resources-plugin

弹簧引导打jar包如何分离自由和资源