我想修改我的構建過程使用Ant與我的個人項目的Apache常春藤建設。它們由幾個共享模塊和一些依賴共享模塊的應用程序模塊組成。對於這個帖子的緣故,讓我們簡化和說我有一個共享的模塊(common
),並取決於common
應用模塊(application
)。每個模塊都有它自己的有效SVN倉庫:如何使用常春藤/螞蟻使用中間文物
svn_repo_1/common/trunk
/branches
/tags
svn_repo_2/application/trunk
/branches
/tags
我檢查了相關修訂成一個公共工作區,在平面結構:
workspace/common
workspace/application
一般來說,application
將取決於一個發佈版本common
,所以建設application
時不需要搭建common
。
然而,當我需要新的功能添加到common
由application
需要,我會然後像application
爲依賴於我的工作區的最新common
版本(無需發佈常見到我的倉庫)。
我認爲這是latest.integration
的含義(即更改application
的ivy.xml以指定通用修訂版的latest.integration)。我的意圖是使用常春藤buildlist
任務來查找在構建應用程序之前需要構建的本地模塊。但這不起作用,因爲buildlist
任務似乎包括common/build.xml條目,無論應用程序的ivy.xml文件是否指定latest.integration或某個其他發佈的修訂。
我將不勝感激任何建議。我正在努力處理常春藤的文檔和樣本,所以任何現實世界的例子也會有所幫助。注意:我對這裏的Maven解決方案不感興趣。
感謝您的回覆。我之所以不想在構建中間構建時發佈'common'是因爲我將ivysvn用於我的主存儲庫 - 因此已發佈的構件會簽入到單獨的svn存儲庫中。我不想要一個通用的latest.integration.jar繼續承諾。我喜歡你多個存儲庫建議的聲音。我是否可以使用這兩個存儲庫來解決問題,以便我的主ivysvn存儲庫中的第三方工件從那裏解析,而我的common-latest.integration.jar是從本地目錄存儲庫中解析出來的? – zorgbargle