对SpringBoot发行Jar包瘦身

1周前 26次点击 来自 其他

标签: SpringBoot

使用 -Dloader.path=/path/to/lib 命令指定依赖包路径,那么 BOOT-INF/lib 路径下的依赖包就不用打包进项目发行包中。

配置

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<configuration>
	    <layout>ZIP</layout>
	    <includes>
			<!-- 发行包不包含依赖jar -->
			<include>
			    <groupId>nothing</groupId>
			    <artifactId>nothing</artifactId>
			</include>
	    </includes>
	    <attach>false</attach>
	</configuration>
</plugin>
<!-- 下载依赖jar包进入target/lib -->
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-dependency-plugin</artifactId>
	<executions>
	    <execution>
		<id>copy-dependencies</id>
		<phase>package</phase>
		<goals>
		    <goal>copy-dependencies</goal>
		</goals>
		<configuration>
		    <type>jar</type>
		    <includeTypes>jar</includeTypes>
		    <includeScope>runtime</includeScope>
		    <outputDirectory>
			${project.build.directory}/lib
		    </outputDirectory>
		</configuration>
	    </execution>
	</executions>
</plugin>

Maven clean install 打包

共包含2个关键部分

maven-dependency-plugin

会更新 ${project.build.directory}/lib 一般是 target/lib 目录下的依赖jar

spring-boot-maven-plugin

打包,不包含依赖

<include>
	<groupId>nothing</groupId>
	<artifactId>nothing</artifactId>
</include>

上传与部署

  1. 上传项目包
  2. 上传**/libtarget/lib**目录下的依赖jar到服务器,假设上传至 /home/lib
  3. java -Dloader.path=/home/lib -jar (其他参数)
Card image cap
开发者雷

尘世间一个小小的开发者,每天增加一些无聊的知识

本站文章全部采用 CC BY 4.0 协议,欢迎转载

技术文档 >> 系列应用 >>
热推应用
Let'sLearnSwift
学习Swift的入门教程
PyPie
Python is as good as Pie
标签