Springboot基于maven打包分離lib及resource
之前在部署Spring Boot項(xiàng)目時(shí),經(jīng)常因?yàn)橹恍薷牧艘恍√幋a、或者只更新了某個(gè)jar包,但是卻需要將整個(gè)項(xiàng)目重新打包、上傳、部署,整個(gè)包一般都會達(dá)到40-60M,每次都重復(fù)這個(gè)操作真的很耗費(fèi)時(shí)間,因此就想是否能夠?qū)⒁蕾噇ib與項(xiàng)目代碼分離出來,每次部署只需要發(fā)布代碼即可。
項(xiàng)目發(fā)版,為了應(yīng)對更新多變的依賴jar包,實(shí)現(xiàn)增量或替換依賴jar包,越來越多的企業(yè)實(shí)現(xiàn)源代碼和依賴jar包和依賴配置分離,更好的應(yīng)對復(fù)雜多變的現(xiàn)場和生產(chǎn)環(huán)境,使用maven打包配置如下:
<build>
<plugins>
<!-- 指定啟動類,將依賴打成外部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加入到類構(gòu)建路徑 -->
<addClasspath>true</addClasspath>
<!-- 外部依賴jar包的最終位置 -->
<classpathPrefix>lib/</classpathPrefix>
<!-- 項(xiàng)目啟動類 -->
<mainClass>com.mozi.mq_monitor.MqMonitorApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<!--拷貝依賴到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í)會去找到同目錄下的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>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Javas使用Redlock實(shí)現(xiàn)分布式鎖過程解析
這篇文章主要介紹了Javas使用Redlock實(shí)現(xiàn)分布式鎖過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
使用SpringCache操作Redis緩存數(shù)據(jù)的示例代碼
SpringCache是一個(gè)框架,實(shí)現(xiàn)了基于注解的緩存功能,只需要簡單的加一個(gè)注解,就能實(shí)現(xiàn)緩存功能,本文給大家介紹了如何使用SpringCache操作Redis緩存數(shù)據(jù),文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-01-01
SpringBoot集成RocketMQ發(fā)送事務(wù)消息的原理解析
RocketMQ 的事務(wù)消息提供類似 X/Open XA 的分布事務(wù)功能,通過事務(wù)消息能達(dá)到分布式事務(wù)的最終一致,這篇文章主要介紹了SpringBoot集成RocketMQ發(fā)送事務(wù)消息,需要的朋友可以參考下2022-06-06
Netty核心功能之?dāng)?shù)據(jù)容器ByteBuf詳解
這篇文章主要為大家介紹了Netty核心功能之?dāng)?shù)據(jù)容器ByteBuf詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Java解決LocalDateTime傳輸前端為時(shí)間的數(shù)組
本文主要介紹了Java解決LocalDateTime傳輸前端為時(shí)間的數(shù)組,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03
java生成csv文件亂碼的解決方法示例 java導(dǎo)出csv亂碼
這篇文章主要介紹了java生成csv文件亂碼的解決方法,大家可以直接看下面的示例2014-01-01
基于html5+java實(shí)現(xiàn)大文件上傳實(shí)例代碼
本文通過一段實(shí)例代碼給大家介紹基于html5+java實(shí)現(xiàn)大文件上傳,涉及到html5 java 文件上傳相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧2016-01-01

