Springboot基于maven打包分離lib及resource
之前在部署Spring Boot項(xiàng)目時(shí),經(jīng)常因?yàn)橹恍薷牧艘恍√幋a、或者只更新了某個(gè)jar包,但是卻需要將整個(gè)項(xiàng)目重新打包、上傳、部署,整個(gè)包一般都會(huì)達(dá)到40-60M,每次都重復(fù)這個(gè)操作真的很耗費(fèi)時(shí)間,因此就想是否能夠?qū)⒁蕾?lài)lib與項(xiàng)目代碼分離出來(lái),每次部署只需要發(fā)布代碼即可。
項(xiàng)目發(fā)版,為了應(yīng)對(duì)更新多變的依賴(lài)jar包,實(shí)現(xiàn)增量或替換依賴(lài)jar包,越來(lái)越多的企業(yè)實(shí)現(xiàn)源代碼和依賴(lài)jar包和依賴(lài)配置分離,更好的應(yīng)對(duì)復(fù)雜多變的現(xiàn)場(chǎng)和生產(chǎn)環(huán)境,使用maven打包配置如下:
<build>
<plugins>
<!-- 指定啟動(dòng)類(lèi),將依賴(lài)打成外部jar包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<!-- 生成的jar中,不要包含pom.xml和pom.properties這兩個(gè)文件 -->
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<!-- 是否要把第三方j(luò)ar加入到類(lèi)構(gòu)建路徑 -->
<addClasspath>true</addClasspath>
<!-- 外部依賴(lài)jar包的最終位置 -->
<classpathPrefix>lib/</classpathPrefix>
<!-- 項(xiàng)目啟動(dòng)類(lèi) -->
<mainClass>com.mozi.mq_monitor.MqMonitorApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!--拷貝依賴(lài)到j(luò)ar外面的lib目錄-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-lib</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/lib</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<includeScope>compile</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<!--指定配置文件,將resources打成外部resource-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<!-- 指定配置文件目錄,這樣jar運(yùn)行時(shí)會(huì)去找到同目錄下的resources文件夾下查找 -->
<manifestEntries>
<Class-Path>resources/</Class-Path>
</manifestEntries>
</archive>
<!-- 打包時(shí)忽略的文件(也就是不打進(jìn)jar包里的文件) -->
<excludes>
<exclude>*.yml</exclude>
<exclude>*.xml</exclude>
<exclude>mqConfig/*.xml</exclude>
</excludes>
</configuration>
</plugin>
<!-- 拷貝資源文件 外面的resource目錄-->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<!-- 資源文件輸出目錄 -->
<outputDirectory>${project.build.directory}/resources</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Linux系統(tǒng)Docker拉取JDK21鏡像超細(xì)詳解
這篇文章主要介紹了如何在Linux系統(tǒng)上使用Docker拉取JDK21鏡像,并基于該鏡像搭建開(kāi)發(fā)和測(cè)試環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-12-12
淺談Java中的final關(guān)鍵字與C#中的const, readonly關(guān)鍵字
下面小編就為大家?guī)?lái)一篇淺談Java中的final關(guān)鍵字與C#中的const, readonly關(guān)鍵字。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
詳解使用Spring Security進(jìn)行自動(dòng)登錄驗(yàn)證
本篇文章主要介紹了詳解使用Spring Security進(jìn)行自動(dòng)登錄驗(yàn)證,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09
SpringCloud整合Netty集群實(shí)現(xiàn)WebSocket的示例代碼
文章主要介紹了SpringCloud整合Netty集群實(shí)現(xiàn)WebSocket的相關(guān)內(nèi)容,包括服務(wù)注冊(cè)和發(fā)現(xiàn)中心的配置,如使用Nacos、CommandLineRunner啟動(dòng)Netty服務(wù)等,還介紹了通過(guò)Redis實(shí)現(xiàn)消息發(fā)布訂閱的機(jī)制,需要的朋友可以參考下2024-11-11
擴(kuò)展tk.mybatis的流式查詢(xún)功能實(shí)現(xiàn)
mybatis查詢(xún)默認(rèn)是一次獲取全部,如果數(shù)據(jù)過(guò)于龐大,就會(huì)導(dǎo)致OOM問(wèn)題,本文就介紹了tk.mybatis 流式查詢(xún),具有一定的參考價(jià)值,感興趣的可以了解一下2021-12-12
Java設(shè)計(jì)模式之Builder建造者模式
這篇文章主要為大家詳細(xì)介紹了Java設(shè)計(jì)模式之Builder建造者模式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
Spring學(xué)習(xí)筆記3之消息隊(duì)列(rabbitmq)發(fā)送郵件功能
這篇文章主要介紹了Spring學(xué)習(xí)筆記3之消息隊(duì)列(rabbitmq)發(fā)送郵件功能的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
Java使用C3P0數(shù)據(jù)源鏈接數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了Java使用C3P0數(shù)據(jù)源鏈接數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Java中用戶向系統(tǒng)傳遞參數(shù)的三種基本方式實(shí)例分享
這篇文章主要介紹了Java中用戶向系統(tǒng)傳遞參數(shù)的三種基本方式實(shí)例,有需要的朋友可以參考一下2014-01-01

