1

我們有一些SNAPSHOT工件,我們需要一次釋放更多或更少的所有工件。我們正在尋找一個插件來完成排序,然後列出依賴關係(依賴關係:列表似乎按字母順序給出它們,依賴關係:樹對我們來說並不是特別方便)。排序(拓撲)maven依賴關係

我們希望這樣做,以便我們可以首先發布「依賴最小」的工件,然後再發布那些「更依賴」的工件。

有沒有其他人曾經遇到過這種需求?

回答

0

我只是必須在插件中自己做這個。 Maven列表中的人似乎不知道這會有用。以下是我做的:http://maven.40175.n5.nabble.com/Topologically-sorting-dependencies-tp3384898p3387803.html

簡單地說,在與依賴分辨率設置爲test插件:

  1. 詢問其文物一MavenProject通過其getArtifacts()電話。
  2. 要求注入的MavenProjectBuilder爲每個Artifact建立一個MavenProject
  3. MavenProject s的列表武裝起來,用該列表呼叫ProjectSorter
  4. 結果列表MavenProject將被拓撲排序。
  5. 現在對於每個MavenProject s,通過其getArtifact()方法獲得其定義Artifact
  6. 使用ArtifactgroupIdartifactId來構建冒號分隔的密鑰。
  7. 使用該鍵在真實的MavenProject的工件圖中查找解析的Artifact
  8. 這個神器現在會有它的getFile()屬性填充,你可以用它做你需要的。

這是令人難以置信的麻煩,但我沒有看到任何其他方式做到這一點。我希望這能夠幫到你。

+0

幾年後,但這是一個更好的解決方案,更「正確」:https://github.com/ljnelson/maven-artifacts/blob/master/src/main/java/com/edugility/maven /Artifacts.java#L80 – 2014-01-08 01:03:48