maven如何打包動(dòng)態(tài)環(huán)境變量(包括啟動(dòng)腳本)
maven 打包 動(dòng)態(tài)啟動(dòng)腳本
介紹如何通過(guò)maven的環(huán)境變量動(dòng)態(tài)打包, 并動(dòng)態(tài)改變啟動(dòng)腳本中的環(huán)境參數(shù)
之前都是每個(gè)環(huán)境一個(gè)啟動(dòng)腳本, 其實(shí)啟動(dòng)腳本基本都一樣, 只是啟動(dòng)的時(shí)候的環(huán)境變量不一樣, 隨著環(huán)境越來(lái)越多, 這樣一個(gè)環(huán)境一個(gè)啟動(dòng)腳本的方式太不優(yōu)雅了, 每次加環(huán)境都得加一份啟動(dòng)腳本, jenkins配置, alibaba cloud開(kāi)發(fā)插件配置每次都得微調(diào)一下, 于是尋找是否有可以動(dòng)態(tài)改變腳本內(nèi)容的方式
前提
maven 打包, 配合 assembly 腳本
maven環(huán)境變量(知道這個(gè)是怎么回事的直接跳過(guò)這部分即可)
設(shè)置
在 pom.xml 文件中加入如下的配置
<profiles> ? ? <profile> ? ? ? ? <!-- 開(kāi)發(fā)環(huán)境 --> ? ? ? ? <id>dev</id> ? ? ? ? <properties> ? ? ? ? ? ? <package.environment>dev</package.environment> ? ? ? ? </properties> ? ? </profile> <profiles>
package.environment
: 這個(gè)是變量名(你可以直接叫env等等, 隨意)dev
: 中間這個(gè) dev 就是環(huán)境變量的值(和你的環(huán)境配置文件, 配置地址等一致即可)
使用
maven 打包命令加上 -P dev 標(biāo)識(shí)打 dev 環(huán)境的包
assembly 配置
在配置腳本中加入如下
<fileSet> ?? ?<directory>${project.build.scriptSourceDirectory}</directory> ?? ?<outputDirectory></outputDirectory> ?? ?<fileMode>0755</fileMode> ?? ?<filtered>true</filtered> ?? ?<includes> ?? ??? ?<include>startup.sh</include> ?? ?</includes> </fileSet>
directory
: 文件地址(打包的時(shí)候去哪里復(fù)制這些文件outputDirectory
: 輸出到哪里(我這里是默認(rèn)位置)fileMode
: 文件權(quán)限設(shè)置filtered
: 這個(gè)為true則表示啟用動(dòng)態(tài)變量
啟動(dòng)腳本如何寫
本文環(huán)境變量的key為package.environment
–spring.profiles.active 后面的環(huán)境參數(shù)就能根據(jù)maven打包命令動(dòng)態(tài)變更了(maven 命令 -P 后面跟的參數(shù))
如下:
nohup java -jar your.jar --spring.profiles.active=${package.environment} -server -Xms512m -Xmx1024m -Xss256k
maven常用打包命令
1、mvn compile 編譯,將Java 源程序編譯成 class 字節(jié)碼文件。
2、mvn test 測(cè)試,并生成測(cè)試報(bào)告
3、mvn clean 將以前編譯得到的舊的 class 字節(jié)碼文件刪除
4、mvn pakage 打包,動(dòng)態(tài) web工程打 war包,Java工程打 jar 包。
5、mvn install 將項(xiàng)目生成 jar 包放在倉(cāng)庫(kù)中,以便別的模塊調(diào)用
6、mvn clean install -Dmaven.test.skip=true 打成jar包,并且拋棄測(cè)試用例打包
7、mvn clean pakage -Dmaven.test.skip=true 動(dòng)態(tài) web工程打 war包,Java工程打 jar 包 ,并且拋棄測(cè)試用例打包
Maven可以使用mvn package指令對(duì)項(xiàng)目進(jìn)行打包,如果使用java -jar xxx.jar執(zhí)行運(yùn)行jar文件,會(huì)出現(xiàn)"no main manifest attribute, in xxx.jar"(沒(méi)有設(shè)置Main-Class)、ClassNotFoundException(找不到依賴包)等錯(cuò)誤。
要想jar包能直接通過(guò)java -jar xxx.jar運(yùn)行,需要滿足:
1、在jar包中的META-INF/MANIFEST.MF中指定Main-Class,這樣才能確定程序的入口在哪里;
2、要能加載到依賴包。
在pom.xml中配置:
<plugin> ?? ?<!--用于指定加載的主類--> ?? ?<groupId>org.springframework.boot</groupId> ?? ?<artifactId>spring-boot-maven-plugin</artifactId> ?? ?<configuration> ?? ??? ?<mainClass>com.zyd.blog.BlogWebApplication</mainClass> ?? ??? ?<layout>JAR</layout> ? ? ? ? ? ? ? ? <!--構(gòu)建完整可執(zhí)行程序,可以直接運(yùn)行--> ? ? ? ? ? ? ? ? <executable>true</executable> ?? ?</configuration> </plugin>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot項(xiàng)目多層級(jí)多環(huán)境yml設(shè)計(jì)詳解
這篇文章主要為大家介紹了SpringBoot項(xiàng)目多層級(jí)多環(huán)境yml設(shè)計(jì)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03使用maven對(duì)springboot項(xiàng)目進(jìn)行瘦身分離jar的多種處理方案
springboot項(xiàng)目打包一般我們都使用它自帶的spring-boot-maven-plugin插件,這個(gè)插件默認(rèn)情況下,會(huì)把所有的依賴包全部壓縮到一個(gè)jar里面,今天給大家分享幾種方案來(lái)如何減小我們的打包文件,需要的朋友可以參考下2024-02-02mybatis中<if>標(biāo)簽bool值類型為false判斷方法
這篇文章主要給大家介紹了關(guān)于mybatis中<if>標(biāo)簽bool值類型為false判斷方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Java如何在沙箱環(huán)境中測(cè)試支付寶支付接口
這篇文章主要介紹了Java如何在沙箱環(huán)境中測(cè)試支付寶支付接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10mybatis-plus的自動(dòng)填充時(shí)間的問(wèn)題(添加到數(shù)據(jù)庫(kù)的時(shí)間比當(dāng)前時(shí)間多4個(gè)小時(shí))
這篇文章主要介紹了mybatis-plus的自動(dòng)填充時(shí)間的問(wèn)題(添加到數(shù)據(jù)庫(kù)的時(shí)間比當(dāng)前時(shí)間多4個(gè)小時(shí)),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09java基于C/S結(jié)構(gòu)實(shí)現(xiàn)多線程聊天室
這篇文章主要為大家詳細(xì)介紹了java基于C/S結(jié)構(gòu)實(shí)現(xiàn)多線程聊天室,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01解決RestTemplate 請(qǐng)求接收自定義400+ 或500+錯(cuò)誤
這篇文章主要介紹了解決RestTemplate 請(qǐng)求接收自定義400+ 或500+錯(cuò)誤,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08