2010-09-12 91 views
2

我使用Apache Ivy來處理庫依賴項。在我的公司,我們有一個定期發佈/版本化的「核心」項目。然後,我們有許多針對特定客戶的「客戶」項目。每個客戶項目都使用我們在客戶項目的ivy.xml中維護的特定版本的核心項目。一切都好。覆蓋常春藤依賴項的修訂版

有時有人會想,以局部改變的核心和測試與特定項目的變化。在這種情況下,他們將構建核心並將其發佈到本地的常春藤回購站,而不是共享的回購站。

爲了這個當地建造的版本拿起我需要確保當地建造的版本或核心發佈完全相同的X.Y.Z版本該項目在指向的ivy.xml?還是有其他方法?我寧願沒有人需要擺弄ivy.xml(例如將其更改爲core - > latest.integration),因爲這是偶然檢入源代碼控制的那種更改。也許有一些方法可以重寫ivy.xml中的依賴項修訂版本,也許在本地屬性文件中?

回答

1

在發展中,我始終指定我的內部項目依賴關係不是「latest.integration」或「latest.release」。這解決了不檢查源代碼控制文件的問題。

好消息是,常春藤publish任務將解析​​動態版本號爲您服務。檢查發佈到您的存儲庫的ivy.xml文件,您將看到最新版本號(在發佈時)已被自動替換。

常春藤deliver任務設計到構建中爲你做這個。當我需要解析的ivy文件爲我的模塊生成Maven POM文件時,我會使用它。

例如:

<ivy:deliver pubrevision="??" status="release" deliverpattern="${build.dir}/ivy.xml"/> 
<ivy:makepom ivyfile="${build.dir}/ivy.xml" pomfile="${build.dir}/pom.xml"/> 

我最後的技巧是當你需要知道序列中的下一個版本號使用常春藤buildnumber。常春藤將基於已經發布到常青藤資源庫的內容(更加靈活地依賴於屬性文件的標準ANT內部編號任務)來解決這個問題。

所以繼續在特定版本使用動態修訂,讓常春藤工作出實際的版本號。

相關問題