maven 打包 動態啓動腳本
本文介紹如何通過
maven
的環境變量動態打包, 並動態改變啓動腳本中的環境參數
之前都是每個環境一個啓動腳本, 其實啓動腳本基本都一樣, 只是啓動的時候的環境變量不一樣, 隨着環境越來越多, 這樣一個環境一個啓動腳本的方式太不優雅了, 每次加環境都得加一份啓動腳本, jenkins配置, alibaba cloud開發插件配置每次都得微調一下, 於是尋找是否有可以動態改變腳本內容的方式
前提
maven 打包, 配合 assembly
腳本
maven環境變量(知道這個是怎麼回事的直接跳過這部分即可)
設置
在 pom.xml
文件中加入如下的配置
<profiles>
<profile>
<!-- 開發環境 -->
<id>dev</id>
<properties>
<package.environment>dev</package.environment>
</properties>
</profile>
<profiles>
package.environment
: 這個是變量名(你可以直接叫env
等等, 隨意)dev
: 中間這個dev
就是環境變量的值(和你的環境配置文件, 配置地址等一致即可)
使用
maven
打包命令加上 -P dev
標識打 dev
環境的包
assembly
配置
在配置腳本中加入如下
<fileSet>
<directory>${project.build.scriptSourceDirectory}</directory>
<outputDirectory></outputDirectory>
<fileMode>0755</fileMode>
<filtered>true</filtered>
<includes>
<include>startup.sh</include>
</includes>
</fileSet>
directory
: 文件地址(打包的時候去哪裏複製這些文件outputDirectory
: 輸出到哪裏(我這裏是默認位置)fileMode
: 文件權限設置filtered
: 這個爲true
則表示啓用動態變量
啓動腳本如何寫
本文環境變量的key
爲package.environment
–spring.profiles.active 後面的環境參數就能根據maven打包命令動態變更了(maven 命令 -P 後面跟的參數)
如下:
nohup java -jar your.jar --spring.profiles.active=${package.environment} -server -Xms512m -Xmx1024m -Xss256k