2012-06-15 67 views
0

我試圖編寫一個Maven插件,它執行以下操作:獲取模塊的所有依賴關係,並確定它的任何傳遞依賴關係是否具有傳遞依賴關係到當前模塊的任何兄弟模塊。複雜的依賴解決與Maven和可能以太 - 如何?

我的想法是這樣的:

  • 獲取模塊的父(僅POM-父),然後讓所有的模塊,查找當前模塊的兄弟姐妹。
  • 獲取模塊的傳遞依賴性(但僅限於我們的組ID)。
  • 對於每個傳遞依賴性,獲取它的傳遞性依賴性並查明它們中的任何一個是否是兄弟模塊之一。

我試過在Maven 2樣式中做,現在以Aether結束。 但是,我不確定是否有可能用Aether做我想要的。

目前,我可以獲得僅限POM的父代(不是與Aether,但是帶有MavenProject),我可以獲得傳遞依賴關係,然後過濾它們以僅保留具有我們組ID的工件。我沒有在Aether中找到相當於Maven FilterArtifacts的東西。

所以,問題是:我的想法是如何實現我的目標是正確的?我可以只用Aether嗎?如果是的話,我該怎麼做?還是我不得不求助於Maven 2和Aether? (我試了一下,但SNAPSHOT版本和時間戳SNAPSHOT版本之間的差異有點麻煩)

無論如何,任何幫助,非常感謝!

+0

你可以更新到Maven 3嗎?它使用Aether來管理依賴關係。你會更容易地完成你的目標。 – Oliver

+0

是的,我正在使用Maven 3 - 我不認爲Aether和Maven 2一起工作。 – eerriicc

回答

0

您可以使用jcabi-aether庫(我的開發者之一),它可以幫助你做你想要什麼:

  1. 獲取模塊列表從MavenProject
  2. 獲取它們的依賴
  3. 使用com.jcabi.aether.Aether

環通逐一化解他們應該可以正常使用Maven 3