欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

maven如何打包動態(tài)環(huán)境變量(包括啟動腳本)

 更新時間:2023年04月06日 10:27:09   作者:__WanG  
這篇文章主要介紹了maven如何打包動態(tài)環(huán)境變量(包括啟動腳本)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

maven 打包 動態(tài)啟動腳本

介紹如何通過maven的環(huán)境變量動態(tài)打包, 并動態(tài)改變啟動腳本中的環(huán)境參數(shù)

之前都是每個環(huán)境一個啟動腳本, 其實啟動腳本基本都一樣, 只是啟動的時候的環(huán)境變量不一樣, 隨著環(huán)境越來越多, 這樣一個環(huán)境一個啟動腳本的方式太不優(yōu)雅了, 每次加環(huán)境都得加一份啟動腳本, jenkins配置, alibaba cloud開發(fā)插件配置每次都得微調(diào)一下, 于是尋找是否有可以動態(tài)改變腳本內(nèi)容的方式

前提

maven 打包, 配合 assembly 腳本

maven環(huán)境變量(知道這個是怎么回事的直接跳過這部分即可)

設(shè)置

在 pom.xml 文件中加入如下的配置

<profiles>
? ? <profile>
? ? ? ? <!-- 開發(fā)環(huán)境 -->
? ? ? ? <id>dev</id>
? ? ? ? <properties>
? ? ? ? ? ? <package.environment>dev</package.environment>
? ? ? ? </properties>
? ? </profile>
<profiles>
  • package.environment : 這個是變量名(你可以直接叫env等等, 隨意)
  • dev : 中間這個 dev 就是環(huán)境變量的值(和你的環(huán)境配置文件, 配置地址等一致即可)

使用

maven 打包命令加上 -P dev 標識打 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 : 文件地址(打包的時候去哪里復(fù)制這些文件
  • outputDirectory : 輸出到哪里(我這里是默認位置)
  • fileMode : 文件權(quán)限設(shè)置
  • filtered : 這個為true則表示啟用動態(tài)變量

啟動腳本如何寫

本文環(huán)境變量的key為package.environment

–spring.profiles.active 后面的環(huán)境參數(shù)就能根據(jù)maven打包命令動態(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 測試,并生成測試報告

3、mvn clean 將以前編譯得到的舊的 class 字節(jié)碼文件刪除

4、mvn pakage 打包,動態(tài) web工程打 war包,Java工程打 jar 包。

5、mvn install 將項目生成 jar 包放在倉庫中,以便別的模塊調(diào)用

6、mvn clean install -Dmaven.test.skip=true 打成jar包,并且拋棄測試用例打包

7、mvn clean pakage -Dmaven.test.skip=true 動態(tài) web工程打 war包,Java工程打 jar 包 ,并且拋棄測試用例打包

Maven可以使用mvn package指令對項目進行打包,如果使用java -jar xxx.jar執(zhí)行運行jar文件,會出現(xiàn)"no main manifest attribute, in xxx.jar"(沒有設(shè)置Main-Class)、ClassNotFoundException(找不到依賴包)等錯誤。

要想jar包能直接通過java -jar xxx.jar運行,需要滿足:

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í)行程序,可以直接運行-->
? ? ? ? ? ? ? ? <executable>true</executable>
?? ?</configuration>
</plugin>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot項目多層級多環(huán)境yml設(shè)計詳解

    SpringBoot項目多層級多環(huán)境yml設(shè)計詳解

    這篇文章主要為大家介紹了SpringBoot項目多層級多環(huán)境yml設(shè)計詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 使用maven對springboot項目進行瘦身分離jar的多種處理方案

    使用maven對springboot項目進行瘦身分離jar的多種處理方案

    springboot項目打包一般我們都使用它自帶的spring-boot-maven-plugin插件,這個插件默認情況下,會把所有的依賴包全部壓縮到一個jar里面,今天給大家分享幾種方案來如何減小我們的打包文件,需要的朋友可以參考下
    2024-02-02
  • mybatis中<if>標簽bool值類型為false判斷方法

    mybatis中<if>標簽bool值類型為false判斷方法

    這篇文章主要給大家介紹了關(guān)于mybatis中<if>標簽bool值類型為false判斷方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mybatis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • Kotlin與Java的主客觀對比分析

    Kotlin與Java的主客觀對比分析

    這篇文章主要介紹了Kotlin與Java的主客觀對比分析,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Java如何在沙箱環(huán)境中測試支付寶支付接口

    Java如何在沙箱環(huán)境中測試支付寶支付接口

    這篇文章主要介紹了Java如何在沙箱環(huán)境中測試支付寶支付接口,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • mybatis-plus的自動填充時間的問題(添加到數(shù)據(jù)庫的時間比當前時間多4個小時)

    mybatis-plus的自動填充時間的問題(添加到數(shù)據(jù)庫的時間比當前時間多4個小時)

    這篇文章主要介紹了mybatis-plus的自動填充時間的問題(添加到數(shù)據(jù)庫的時間比當前時間多4個小時),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • java基于C/S結(jié)構(gòu)實現(xiàn)多線程聊天室

    java基于C/S結(jié)構(gòu)實現(xiàn)多線程聊天室

    這篇文章主要為大家詳細介紹了java基于C/S結(jié)構(gòu)實現(xiàn)多線程聊天室,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • RabbitMQ單機版部署安裝過程

    RabbitMQ單機版部署安裝過程

    RabbitMQ 是一個由 Erlang 語言開發(fā)的 AMQP 的開源實現(xiàn),在實現(xiàn)過程中需要注意由于rabbitmq是基于erlang語言開發(fā)的,所以必須先安裝erlang,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2022-03-03
  • 解決RestTemplate 請求接收自定義400+ 或500+錯誤

    解決RestTemplate 請求接收自定義400+ 或500+錯誤

    這篇文章主要介紹了解決RestTemplate 請求接收自定義400+ 或500+錯誤,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 一文簡單了解C#?中的DataSet類

    一文簡單了解C#?中的DataSet類

    這篇文章主要介紹了一文簡單了解C#?中的DataSet類,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08

最新評論