Rainbond Java Maven 多模組原始碼構建
阿新 • • 發佈:2019-08-23
Maven 多模組專案構建識別策略
Maven 多模組專案是根據 pom.xml 檔案(下面簡稱 pom)來劃分的, Rainbond 對它的識別也是建立在 pom 的基礎上的. 主要是識別出具體模組(module)的構建命令和啟動命令. 構建命令的作用是指定需要構建的模組, 是類似於 "mvn install -pl 'module name' -am" 的 mvn 命令. 啟動命令的作用是在構建完成後, 指定需要執行的 Jar 包, 是類似於 "web: java $JAVA_OPTS -jar *.jar" 的命令.
識別策略:
- 根據根 pom 中的 modules 中的 module 標籤, 找到相應模組下的 pom.
- 如果 pom 中的 packing 標籤的值是 jar(war), 則解析出當前 pom 對應的模組名和 jar(war)包名. packing 標籤的值為空, 會認為是 jar.
- 模組名由名級父 pom 中的 module 標籤的值組成, 用 "/" 分割, 類似於: rbd-worker/rbd-thirdparty.
- jar(war) 包名預設是 ${artifaceId}-*.jar(war). 如果設定了 finalName 標籤, 則會使用 finalName 標籤的值; 如果finalName 標籤使用了變數${project.name}或${project.aritfactId}, 則會使用變數對應的值; 如果使用了其他的變數, 則直接用 * 代替, 即: *.jar(war).
- 如果 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
-
- 從原始碼建立,選擇自定義原始碼,填寫專案地址
-
- 如果是多模組專案會識別出來,選擇進入多模組構建配置項
-
- 根據<b>Spring Cloud 微服務部署在RAINBOND的案例</b>一文可知如下元件需要部署執行, 勾選後構建
-
- 構建完成效果圖(僅Java部分)
-
- 檢視某一應用構建源資訊
這樣Pig專案多模組構建就完成了,後續其他步驟參考SPRING CLOUD 微服務部署在 RAINBOND 的案