Spring boot打包jar分离lib和resources方法实例

网友投稿 306 2023-04-22

Spring boot打包jar分离lib和resources方法实例

为什么要配置、依赖文件分离:

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

如果要修改一些配置文件:properties、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并不会打进来(后面会有解决方法),适用不需要依赖文件的项目。

org.apache.maven.plugins

maven-jar-plugin

2.3

true

xxx.xxx.Main

${project.build.directory}

maven-assembly-plugin 插件打包jar

maven-assembly-plugin

false

jar-with-dependencies

xxx.xxx.Main

make-assembly

package

assembly

打包SpringBoot 项目

方案一、

org.apache.maven.plugins

maven-jar-plugin

true

lib/

false

xxx.xxx.Application

/resources

${project.build.directory}/dis

org.apache.maven.plugins

maven-dependency-plugin

copy-dependencies

package

copy-dependencies

${project.build.directory}/dis/lib/

maven-resources-plugin

copy-resources

package

copy-resources

src/main/resources

${project.build.directory}/dis/resources

org.springframework.boot

spring-boot-maven-plugin

ZIP

true

repackage

方案二

这里依赖assembly.xml 描述文件

maven-assembly-plugin

false

assembly.xml

${project.build.directory}/dist/

make-assembly

package

single

org.apache.maven.plugins

maven-jar-plugin

xxx.xxx.Application

lib/

true

resources/

assembly.xml

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">

distribution

zip

false

src/main/resources/

/resources

/lib

runtime

${project.groupId}:${project.artifactId}

/

${project.groupId}:${project.artifactId}

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">

distribution

zip

false

src/main/resources/

/resources

/lib

runtime

${project.groupId}:${project.artifactId}

/

${project.groupId}:${project.artifactId}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:JDK10新特性之var泛型和多个接口实现方法
下一篇:java的主要特性学习总结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~