再了解打包瘦身優(yōu)化之前,我理解的是純壓縮代碼,減小包體大小,結(jié)果其實并不是,具體情況如下:
其實瘦身就是把自己的代碼和引用的庫分離開,假如包體不瘦身,那么jar包有10M,那么瘦身后就是jar包20k,lib文件夾9.8M
如何瘦身:
pom.xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
...
<!-- 解決windows命令行窗口中文亂碼 -->
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<layout>ZIP</layout>
<!-- 配置需要打包進(jìn)項目的jar -->
<includes>
<!--
這里是填寫需要包含進(jìn)去的jar
必須項目中的某些某塊,會經(jīng)常變動,那么就應(yīng)該將其坐標(biāo)寫進(jìn)來
如果沒有則non-exists,表示不打包依賴
-->
<include>
<groupId>non-exists</groupId>
<artifactId>non-exists</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 此插件用于將依賴包抽出 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<!-- 是否排除傳遞性 -->
<excludeTransitive>false</excludeTransitive>
<!-- 是否去掉jar包版本信息 -->
<stripVersion>false</stripVersion>
<!-- 包含范圍 -->
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
配置好了pom.xml后,我該如何啟動?
java -jar -Dloader.path=./lib [jarname].jar
linux服務(wù)器自帶nohup后臺啟動
nohup java -jar -Dloader.path=./lib [jarname].jar
新版寶塔現(xiàn)在對java項目變得非常友好了,可以直接部署springboot,那么在寶塔里的啟動腳本如下:
/usr/bin/java -jar -Dloader.path=./lib -Xmx1024M -Xms256M /www/wwwroot/[jarname].jar --server.port=8080
如上配置好后,未來修改代碼再上傳的話只需要上傳20k的jar包即可!