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