詳解SpringBoot迭代發(fā)布JAR瘦身配置
默認(rèn)情況下,插件 spring-boot-maven-plugin 會把整個(gè)項(xiàng)目打包成一個(gè)可運(yùn)行的Jar包(即所謂的Flat Jar),導(dǎo)致了這個(gè)Jar包很大(通常有幾十M+)。如今迭代發(fā)布時(shí)常有的事情,每次都上傳一個(gè)如此龐大的文件,會浪費(fèi)很多時(shí)間,有些時(shí)候上傳的過程中還會出錯(cuò)。
造成Jar包很大的根本原因就是依賴第三方的jar很多,很大,下面我們就把第三方的JAR與項(xiàng)目代碼分離,第三方的JAR把移除到lib文件夾中,即可實(shí)現(xiàn)為我們的可執(zhí)行JAR瘦身,配置如下:
<plugins>
<!-- spring boot thin jar configuration -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- main 入口 -->
<mainClass>com.bdfint.logistics.app.driver.LogisticsAppDriverApplication</mainClass>
<!-- 設(shè)置為ZIP,此模式下spring-boot-maven-plugin會將Manifest.MF文件中的Main-Class設(shè)置為org.springframework.boot.loader.PropertiesLauncher -->
<layout>ZIP</layout>
<!-- 需要包含的jar包 -->
<includes>
<!-- 不包含任何jar包 -->
<!--<include>-->
<!--<groupId>nothing</groupId>-->
<!--<artifactId>nothing</artifactId>-->
<!--</include>-->
<include>
<groupId>com.bdfint.logistics</groupId>
<artifactId>logistics-api</artifactId>
</include>
<include>
<groupId>com.bdfint.logistics</groupId>
<artifactId>logistics-common</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- third-party jar into lib directory -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<!-- 需要排除的jar的 groupId -->
<excludeGroupIds>
com.bdfint.logistics
</excludeGroupIds>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
接下來,執(zhí)行打包命令:mvn clean package -Dmaven.test.skip=true,打包后在target目錄下就包含我們的JAR和lib目錄,如下圖:

CMD定位到target目錄下,執(zhí)行命令:java -Dloader.path=./lib -jar logistics-app-driver-2.9.1.1.jar,即可把項(xiàng)目JAR跑起來!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringBoot打成jar包瘦身方法總結(jié)
- 使用springboot 打包插件去除jar包瘦身
- SpringBoot項(xiàng)目Jar包如何瘦身部署的實(shí)現(xiàn)
- SpringBoot瘦身打包部署的實(shí)現(xiàn)
- SpringBoot之瘦身部署的詳細(xì)步驟
- Springboot 使用maven release插件執(zhí)行版本管理及打包操作
- 解決IDEA springboot"spring-boot-maven-plugin"報(bào)紅問題
- IDEA使用Gradle構(gòu)建SpringBoot項(xiàng)目工程的詳細(xì)教程
- SpringBoot?項(xiàng)目瘦身maven/gradle詳解
相關(guān)文章
MyBatis中關(guān)于resultType和resultMap的區(qū)別介紹
MyBatis中在查詢進(jìn)行select映射的時(shí)候,返回類型可以用resultType,也可以用resultMap,那么MyBatis中關(guān)于resultType和resultMap的區(qū)別是什么呢?下面小編通過本文給大家解答下2016-09-09
通過實(shí)例了解Java 8創(chuàng)建Stream流的5種方法
這篇文章主要介紹了通過實(shí)例了解Java 8創(chuàng)建Stream流的5種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Java Eclipse中實(shí)現(xiàn)快速替換變量
這篇文章主要介紹了Java Eclipse中實(shí)現(xiàn)快速替換變量,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Spring?Boot?快速使用?HikariCP?連接池配置詳解
Spring Boot 2.x 將其作為默認(rèn)的連接池組件,項(xiàng)目中添加 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa 模塊后,HikariCP 依賴會被自動引入,這篇文章主要介紹了Spring?Boot使用HikariCP連接池配置詳解,需要的朋友可以參考下2023-06-06
Java lombok中@Accessors注解三個(gè)屬性的作用
這篇文章主要介紹了Java?lombok的@Accessors注解屬性解析,該注解主要作用是:當(dāng)屬性字段在生成?getter?和?setter?方法時(shí),做一些相關(guān)的設(shè)置,需要的朋友可以參考下2023-05-05
基于Java 生產(chǎn)者消費(fèi)者模式(詳細(xì)分析)
下面小編就為大家分享一篇基于Java 生產(chǎn)者消費(fèi)者模式(詳細(xì)分析),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01

