1. 程式人生 > >Rainbond Java Maven 多模組原始碼構建

Rainbond Java Maven 多模組原始碼構建

Maven 多模組專案構建識別策略

Maven 多模組專案是根據 pom.xml 檔案(下面簡稱 pom)來劃分的, Rainbond 對它的識別也是建立在 pom 的基礎上的. 主要是識別出具體模組(module)的構建命令和啟動命令. 構建命令的作用是指定需要構建的模組, 是類似於 "mvn install -pl 'module name' -am" 的 mvn 命令. 啟動命令的作用是在構建完成後, 指定需要執行的 Jar 包, 是類似於 "web: java $JAVA_OPTS -jar *.jar" 的命令.

識別策略:

  1. 根據根 pom 中的 modules 中的 module 標籤, 找到相應模組下的 pom.
  2. 如果 pom 中的 packing 標籤的值是 jar(war), 則解析出當前 pom 對應的模組名和 jar(war)包名. packing 標籤的值為空, 會認為是 jar.
  3. 模組名由名級父 pom 中的 module 標籤的值組成, 用 "/" 分割, 類似於: rbd-worker/rbd-thirdparty.
  4. jar(war) 包名預設是 ${artifaceId}-*.jar(war). 如果設定了 finalName 標籤, 則會使用 finalName 標籤的值; 如果finalName 標籤使用了變數${project.name}或${project.aritfactId}, 則會使用變數對應的值; 如果使用了其他的變數, 則直接用 * 代替, 即: *.jar(war).
  5. 如果 pom 中的 packing 標籤的值是 pom, 且 modules 標籤中的 module 多於 1, 則重複 1 ~ 5.

因為很多地方都使用了萬用字元 * , 在構建出來的 jar(war) 不只一個時, 識別出來的 jar(war) 包可能不能確定唯一的包; 又或者識別出來的 jar(war) 包有誤, 這時候就需要使用者手動進行修改.

多模組專案原始碼規範

因為 Rainbond 對 Maven 多模組專案的識別是建立在 pom 的基礎上的, 所以大家在書寫的 pom.xml 檔案, 符合 pom 的規範就好. pom 的規範請參考: POM Reference

案例

這裡以

SPRING CLOUD 微服務部署在 RAINBOND 的案例一文中的Pig專案中Java原始碼部署部分為例,一次性多模組部署Pig專案(其他依賴如Mysql預設安裝好)。

模組構建

新建應用,並命名為spring-cloud

獲取專案克隆/下載地址: https://gitee.com/log4j/pig.git

    1. 從原始碼建立,選擇自定義原始碼,填寫專案地址

    1. 如果是多模組專案會識別出來,選擇進入多模組構建配置項

    1. 根據<b>Spring Cloud 微服務部署在RAINBOND的案例</b>一文可知如下元件需要部署執行, 勾選後構建

    1. 構建完成效果圖(僅Java部分)

    1. 檢視某一應用構建源資訊

這樣Pig專案多模組構建就完成了,後續其他步驟參考SPRING CLOUD 微服務部署在 RAINBOND 的案