maven的deploy

昨天maven的deploy任務需要只選擇單個模塊並且把它依賴的模塊一起打包,第一時間便想到了-pl參數,然後就開始處理,但是因爲之前只看了一下命令的介紹,竟然花了近半小時才完全跑通,故記錄此文。

假設現有項目結構如下

dailylog-parent
|-dailylog-common
|-dailylog-web

  • 三個文件夾處在同級目錄中
  • dailylog-web依賴dailylog-common
  • dailylog-parent管理dailylog-common和dailylog-web。

根據資料已知:

參數 全稱 釋義 說明
-pl --projects Build specified reactor projects instead of all projects

選項後可跟隨{groupId}:{artifactId}或者所選模塊的相對路徑(多個模塊以逗號分隔)

-am --also-make If project list is specified, also build projects required by the list

表示同時處理選定模塊所依賴的模塊

-amd --also-make-dependents If project list is specified, also build projects that depend on projects on the list

表示同時處理依賴選定模塊的模塊

-N --Non-recursive Build projects without recursive

表示不遞歸子模塊

-rf --resume-from Resume reactor from specified project

表示從指定模塊開始繼續處理

以下是在maven-3.3.9中的試驗

1. 在dailylog-parent目錄運行`mvn clean install -pl org.lxp:dailylog-web -am`,結果

  • dailylog-common成功安裝到本地庫
  • dailylog-parent成功安裝到本地庫
  • dailylog-web成功安裝到本地庫

該命令等價於`mvn clean install -pl ../dailylog-web -am`

2. 在dailylog-parent目錄運行`mvn clean install -pl ../dailylog-common -am`,結果

  • dailylog-common成功安裝到本地庫
  • dailylog-parent成功安裝到本地庫

3. 在dailylog-parent目錄運行`mvn clean install -pl ../dailylog-common -amd`,結果

  • dailylog-common成功安裝到本地庫
  • dailylog-web成功安裝到本地庫

由於dailylog-parent並不依賴dailylog-common模塊,故沒有被安裝

4. 在dailylog-parent目錄運行`mvn clean install -pl ../dailylog-common,../dailylog-parent -amd`,結果

  • dailylog-common成功安裝到本地庫
  • dailylog-parent成功安裝到本地庫
  • dailylog-web成功安裝到本地庫

5. 在dailylog-parent目錄運行`mvn clean install -N`,結果

  • dailylog-parent成功安裝到本地庫

-N表示不遞歸,那麼dailylog-parent管理的子模塊不會被同時安裝

6. 在dailylog-parent目錄運行`mvn clean install -pl ../dailylog-parent -N`,結果

  • dailylog-parent成功安裝到本地庫

7. 在dailylog-parent目錄運行`mvn clean install -rf ../dailylog-common`,結果

  • dailylog-common成功安裝到本地庫
  • dailylog-web成功安裝到本地庫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章