有你的問題,有幾個可能的解決方案,其中最常見的是:
1)你可以幾個項目結合在一起,如果他們都必須無論如何建立和形成一個依賴樹,成爲一個連貫的模塊集。它使用maven的
<modules>
<module>submodule-A</module>
<module>submodule-B</module>
</modules>
格式,它是簡潔,和分組都應該作爲一個組一起版本化項目時,它是有幫助的。然後你只需要一個腳本,當你發佈一個版本(或者,我不太喜歡的選項,使用maven-release-plugin)時,將所有子pom.xml文件的版本號更新爲正確的版本。這樣,項目的每個部分都會移動並作爲一個整體進行版本管理;然後您可以開始添加實際修訂版本號(即1.3.2)。
2)如果您不能將常用子項目與模塊整合爲一個一致的解決方案,則下一個最佳選擇是使用SNAPSHOTS。通過將依賴項目中的版本設置爲如下形式:
<project>
...
<artifactId>dependency-A</artifactId>
<groupId>com.company</groupId>
<version>1.3.2-SNAPSHOT</version>
...
</project>
您可以一次移動到不同的代碼庫中。您的主要項目具有快照上直接依賴關係可以跟蹤對存儲庫的變化:
<dependencies>
...
<dependency>
<artifactId>dependency-A</artifactId>
<groupId>com.company</groupId>
<version>1.3.2-SNAPSHOT</version>
</dependency>
...
</dependencies>
,或者你可以依賴於舊版本的繼續(即使用1.3.1)目前的開發週期,然後在1.3.2版本發佈後更新依賴關係。
這個選項在跟蹤多個獨立項目時稍微複雜一點,但它確實保留了什麼取決於什麼版本的明確性,明確地在源代碼中。與版本控制模塊相比,這是不利的一面。另一方面,大多數CI系統(包括Hudson)在配置部分末尾都有一個複選框,用於詢問「構建相關項目?」的工作。 (或類似的東西)。當作爲maven構建進行檢查和運行時,只要您的SNAPSHOT依賴關係-A執行重建,Hudson就可以自動啓動依賴於依賴關係-A的任何項目的構建。當你有一個共同的,不斷更新的依賴關係時,這可能非常方便。
甚至+1儘管:也許最新版本的b所做的是「不相關的」,但這並不意味着它不知道它是否引入了重大更改。 – 2011-01-20 08:56:54
@Zac是真實的,但是這需要一個專門的構建,以某種方式測試所有項目的當前版本。 – 2011-01-20 08:58:45