介绍
小编这次要给大家分享的是弹簧引导打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包如何分离自由和资源