前言
一般情况下,springboot打完的jar包是一个可以运行jar包,包内包含了所有依赖的第三方jar。这也导致了编译出来的Jar包很大,而通常一个工程项目架构确定后,依赖的jar包基本上不会变,改变的大部分是业务逻辑。如果部署的服务器网络带宽有限,会导致部署传输较久。可以考虑不将第三方包打包进jar包里,每次发版只发业务代码包。
步骤
步骤1:
pom.xml build节点加入configuration配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.6.RELEASE</version>
<configuration>
<mainClass>MainClass全路径</mainClass>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
步骤2:
导出lib包
mvn dependency:copy-dependencies -DoutputDirectory=\path\to\lib -DincludeScope=runtime
需要注意的是,如果你的项目是多module项目,那么-DoutputDirectory需要使用绝对路径,否则如果使用相对路径,那么每个module将会使用自己的相对路径输出依赖包。
步骤3:
启动,比一般情况下多-Dloader.path
java -Dloader.path=\path\to\lib -jar my-microsvc-1.0.0.jar