boot lib分离 spring_springboot的jar和lib分开打包

为了解决更新频繁且网络环境差的问题,本文介绍了如何将Spring Boot项目的jar与lib分离打包,通过maven-assembly-plugin和maven-dependency-plugin实现。打包后仅上传几百KB的jar文件,提高工作效率。当依赖变动时,需手动同步lib中的变更到服务器。
摘要由CSDN通过智能技术生成

背景

项目更新频繁,只有在服务器上才能验证,而jar有几十M,且网络特别差,每次上传jar到服务器浪费了大量时间,所以这里把lib和jar分离,在不涉及依赖jar版本变更的情况下,每次上传的只有一个大小才几百k的jar,大大提高了工作效率。

实现

pom屏蔽自带的打包插件

pom添加assembly插件

maven-assembly-plugin

false

src/main/resources/assembly.xml

make-assembly

package

single

resources下添加配置文件assembly.xml

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

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

package

zip

true

${basedir}/src/main/resources

*.yml

true

${file.separator}config

${project.build.directory}/lib

${file.separator}lib

*.jar

${project.build.directory}

${file.separator}

*.jar

pom添加插件来拷贝依赖,版本3.0.2

org.apache.maven.plugins

maven-dependency-plugin

${maven.dependency.plugin.version}

copy-lib

prepare-package

copy-dependencies

${project.build.directory}/lib

false

false

true

compile

pom添加插件打包,指定main方法和依赖的位置,版本3.0.2

org.apache.maven.plugins

maven-jar-plugin

${maven.jar.plugin.version}

true

lib/

com.memexue.shares.SharesApplication

${artifactId}

${project.version}

${project.description}

pom添加snakeyaml,版本1.24

不添加的话项目会找不到yml文件。

org.yaml

snakeyaml

${snakeyaml.version}

结果

运行mvn package,在target目录下生成项目对应的zip文件shares-0.0.1-SNAPSHOT.zip。解压后包含:

shares-0.0.1-SNAPSHOT.jar

config/

lib/

运行jar文件效果和自带的打整包效果一样。

注意

如果依赖的文件有变更,版本变化或者新增、删除依赖,需要手动将lib中变化的文件同步到服务器上。

注意:本文归作者所有,未经作者允许,不得转载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值