Assemby 打包並啟動jar包

平凡人筆記發表於2020-10-23

期望效果

通過mvn package進行打包的時候生成jar包啟動指令碼 直接對生成的jar包啟動

引入maven外掛

   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <!--主要使用的是maven提供的assembly外掛完成-->
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.1.0</version>
 <configuration>  <descriptors>  <!--具體的配置檔案-->  <descriptor>src/main/assembly/assembly.xml</descriptor>  </descriptors>  </configuration>  <executions>  <execution>  <id>make-assembly</id>  <!--繫結到maven操作型別上-->  <phase>package</phase>  <!--執行一次-->  <goals>  <goal>single</goal>  </goals>  </execution>  </executions>  </plugin> 

在專案目錄下建立如下檔案

具體的檔案內容詳見

https://gitee.com/pingfanrenbiji/resource/tree/master/assembly

通過maven打包

在target目錄下 會生成一個 壓縮包

圈紅部分是assembly啟動指令碼

lib目錄下 是生成的jar包

config目錄是專案中的配置檔案resouces目錄下所有的配置

啟動指令碼啟動jar包

注:該啟動指令碼會讀取config下面的application.yml配置檔案

需要優化的地方

該啟動指令碼只能讀取 application.yml 配置檔案

所以對於多環境配置的情況不能夠使用

啟動指令碼中讀取application.yml程式碼
啟動指令碼中讀取application.yml程式碼

這裡優化的思路(等有時間了再完善)

  • 從外部傳給該啟動指令碼一個 profile 環境變數

  • 通過環境變數找到對應的配置檔案

  • 然後把該配置檔案複製成application.yml檔案

本文使用 mdnice 排版

相關文章