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

背景

项目更新频繁,只有在服务器上才能验证,而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中变化的文件同步到服务器上。

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

你可能感兴趣的:(boot,lib分离,spring)