-
背景
生產(chǎn)環(huán)境中,需要本地打包上傳服務(wù)器,而本地打包時,jar中會同時將項目依賴也打入進(jìn)去,造成jar體積過大,為了減小運(yùn)行jar包的體積,可以做如下配置修改。
修改方法
修改項目子模塊xxx-xxx-server中的pom文件。
- 在
spring-boot-maven-plugin中增加configuration配置,并指定啟動類 - 增加
maven-dependency-plugin依賴打包插件
POM中 build 配置
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<filters>
<filter>../../src/main/filters/config-${profile.active}.properties</filter>
</filters>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
<mainClass>com.xxx.v2x.ControlServerApplication</mainClass>
<layout>ZIP</layout>
</configuration>
</plugin>
<!--拷貝依賴到j(luò)ar外面的lib目錄-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<!--導(dǎo)出所有的 jar 包-->
<execution>
<id>copy-dependencies</id>
<!-- 在實際打包中,執(zhí)行任何的必要的操作。 -->
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!--指定的依賴路徑-->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<version>2.6</version>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<!-- docker打包插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${dockerfile-maven-plugin.version}</version>
<configuration>
<repository>${docker.image.prefix}/${project.artifactId}</repository>
<tag>${tiannet-project.version}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
**打包成功后,會在target目錄下生成lib文件夾和響應(yīng)的jar包
將lib包下的依賴上傳至服務(wù)器后,每次只需要更改相應(yīng)的jar文件就可以了
-
jar啟動
修改后的jar中不在包含依賴,所以啟動方式也有鎖改變。需要使用參數(shù)-Dloader。path指定lib所在路徑。形如:
java -Dloader.path=./lib -jar xx-xx-server.jar