0

我試圖自動釋放相互依存的項目。這是場景。我有兩個項目:A和B.項目B依賴於項目A.以下是在自動過程中需要執行的步驟:Maven發佈插件,版本插件和快照

  1. 發佈項目A使用maven-release-plugin。 (我知道如何做到這一點)。這是我所定義的目標序列: 發佈:乾淨發佈:準備-DcommitByProject =真-DautoVersionSubmodules =真正的釋放:執行
  2. 部署項目中的最新快照版本到存儲庫。 (使用簡單的部署正在工作,但有一個小問題,我在下面介紹)

  3. 在完成發佈之前,將項目B中的項目A的SNAPSHOT依賴項版本更新爲最新版本。爲了達到這個目的,我在項目B的POM文件中設置了準備目標這樣(clean verify versions:use-latest-versions versions:commit)。

一切似乎工作正常。

現在我想要的是,一旦發佈完成,項目B中的項目A依賴項到發佈期間由發佈版設置的最新SNAPSHOT版本:prepare插件。

我想出瞭解決的辦法是做一個行家的發佈後正確的項目部署快照:被執行死刑執行。 (項目一個新的目標序列:發佈:乾淨發佈:準備-DcommitByProject =真-DautoVersionSubmodules =真正的釋放:執行全新安裝部署

然後,我可以執行版本:用未來的快照在項目B的發佈週期結束時。 (項目B的新目標序列:版本:clean release:prepare -DcommitByProject = true -DautoVersionSubmodules = true release:執行版本:use-next-snapshots)。在這裏我限制我的版本插件只處理項目A的依賴關係。

問題在於,當我執行項目A的目標時,Maven會使用舊版本而不是增量版本部署SNAPSHOT。所以如果項目A發佈之前的版本是1.1-SNAPSHOT。發佈後的版本現在是1.2-SNAPSHOT。發佈版本將爲1.1。但是,部署的項目A快照版本是1.1-SNAPSHOT而不是1.2-SNAPSHOT

我猜maven執行maven-release-plugin目標後,maven並沒有更新內存中的pom。

回答

1

您是否考慮過讓兩個項目都屬於父項目?然後您釋放父項目,然後自動釋放每個模塊(子項目)

相關問題