当前位置:   article > 正文

SpringBoot瘦身

springboot瘦身

1. 什么是瘦身

SpringBoot应用瘦身指的是:将SpringBoot应用打包利用合理的方式减小体积。

2. 为什么要瘦身

现有的应用开发中,springboot作为底层框架,打包时最终都会以jar包的方式打包、部署。这时就会面临一个问题,**因为引入很多的第三方依赖 ** jar包的体积非常大,单体应用还好,但是微服务是,几十个微服务都要打包成jar包,每个jar包都有几百兆,非常占用空间,如果在云环境或者客户现场部署,会非常崩溃,所以需要瘦身。

3. 怎么瘦身

瘦身思路:
经常需要发生改变的是业务代码,引入的依赖很少发生改变,所以可以把这两部分分开来打包部署。
在这里插入图片描述

3.1 通过maven瘦身

可以在打包的时候,将当前应用需要的第三方依赖拷贝到某一个目录。

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-dependency-plugin</artifactId>
	<version>3.1.1</version>
	<executions>
		<execution>
			<id>copy-dependencies</id>
			<phase>package</phase>
			<goals>
				<goal>copy-dependencies</goal>
			<goals>
			<configuration>
				<outputDirectory>${project.build.directory}/lib</outputDirectory>
				<!--是否排除传递性-->
				<excloudeTransitive>false</excloudeTransitive>
				<!--是否去掉jar包版本信息-->
				<stripVersion>false</stripVersion>
				<!--包含范围-->
				<includeScope>runtime</includeScope>
			</configuration>
		</execution>
	</executins>
</plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

通过这个插件也只能将第三方的依赖单独打包,但是目前还不能从JAR包中分离第三方的依赖。
所以需要对SpringBoot的maven插件进行修改

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<version>2.6.1</version>
	<configuration>
		<mainClass>com.software.SoftWebApiApplication</mainClass>
		<!--解决windows命令行窗口中文乱码-->
		<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
		<layout>ZIP</layout>
		<!--配置需要打包进项目的jar-->
		<includes>
			<!--这里填写需要包含进去的jar,
				必须项目中的某些模块,会经常变动,那么就应该将其坐标写进来,如果没有则non-exists,表示不打包依赖
				如果使用maven多模块聚合,在开发业务时会有一些自己开发的common,那就可以将自己的common加入进来,填入common的组织和项目名就可以了-->
				<include>
					<groupId>non-exists</groupId>
					<artifactId>non-exists</artifactId>
				</include>
		</includes>
	</configuration>
	<executions>
		<execution>
			<id>repackage</id>
			<goals>
				<goal>repackage</goal>
			</goals>
		</execution>
	</executins>	
</plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

3.2 如何运行分开的jar

java -jar -Dloader.path="/lib" xxx.jar

//因为第三方单独打包出来的jar包放在了lib目录下
例:java -jar -Dloader.path=./lib soft-web-api.jar
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/376235?site
推荐阅读
相关标签
  

闽ICP备14008679号