2009-05-22 246 views
2

我有一個主要項目,其中模塊A依賴於由模塊B的構建創建的aa .jar文件。在開發過程中,我定期修改B,然後構建B以創建該庫,然後構建A使用這些更改。對本地文件的常春藤依賴關係?

有沒有辦法將模塊A的常青藤文件指向我的模塊B build創建的jar文件?鑑於我正在迭代多次,我不想一遍又一遍地檢查模塊B的jar進入ivy。在每個模塊B構建之後,還需要將jar複製到模塊A的構建目錄結構中,這也令人討厭。

其實,對我來說更糟,因爲我在依賴關係樹(A-> B-> CD)中有大約4個模塊。如果它只是A和B,我可能只是想和它一起生活,但是在子模塊構建之後,我厭倦了複製jar文件,並且想到如果有一種方法可以重寫ivy文件依賴關係行以在本地查看'讓生活變得更簡單。

+0

您是在IDE中還是從命令行工作?你是否需要這兩種情況下的依賴關係,還是隻需要一個用於調試? – Jherico 2009-05-23 03:18:50

回答

4

指向您的本地構建模塊的常春藤依賴不是解決這個問題的方法。相反,當您構建模塊B時,將其發佈到本地Ivy存儲庫。解決模塊A的依賴關係時,它將從本地存儲庫中下拉模塊B.

From the Ivy docs on the local repository

,當你想要做的事 沒有被任何其他 環境中發生的事情所幹擾的本地倉庫是特別有用 。 這意味着只要常春藤能夠 在這個存儲庫中找到一個模塊 它將被使用,不管其他人可以使用什麼 。

舉例來說,如果你有一個模塊 在修訂latest.integration模塊 FOO聲明依賴,那麼如果FOO的修訂 本地庫中找到,它會被用來 , 即使其他存儲庫中可用的更新版本是 。

這可能是令人不安的一些 你,但是想象一下,你必須實現 一個項目一個新的功能,並在 爲了實現這一目標,你需要 修改兩個模塊:你在添加新 方法模塊foo並在模塊欄中利用此新的方法 。然後,如果你 發佈模塊FOO到本地 倉庫,你一定會得到它 你的酒吧模塊中,即使有人 其他人發佈的foo新修訂 共享庫(這個版本不具有 新方法你現在正在添加 )。

但要小心,當您完成 您的開發和發佈的 共享你將不得不清理你的 本地資源庫,從發表在共享 庫新 版本中獲益。

還要注意的是,在 本地存儲庫中找到的模塊必須是完整的, 即它們必須提供一個模塊 描述符和出版 文物。

Using Ivy in multiple projects environment文檔有一個示例publish-local您可能會覺得有用的Ant任務。

相關問題