【发布时间】:2014-03-23 02:33:52
【问题描述】:
我们正在开发一个框架并希望发布a BOM(bill of material) like Spring 4 does。在这个主要的pom.xml 中,我们组件的所有版本都被列为托管依赖项。因为我们有很多组件,所以我们想检查我们的任何组件是否在我们的其他组件中列出了两个不同的版本。
在内部使用 BOM 或创建第二个内部 BOM 不是解决方案,因为这会导致循环依赖。
现在,我的想法是创建一个遍历所有依赖项并查找重复项的 maven 插件。我设法使用“正常”依赖项做到了这一点,但不适用于托管依赖项。
ArtifactFilter myArtifactFilter = new MyArtifactFilter();
rootNode = dependencyTreeBuilder.buildDependencyTree(project, localRepository, artifactFactory, artifactMetadataSource, null, collector);
CollectingDependencyNodeVisitor cdnv = new CollectingDependencyNodeVisitor();
DependencyNodeFilter adnf = new ArtifactDependencyNodeFilter(myArtifactFilter);
DependencyNodeVisitor dnv = new FilteringDependencyNodeVisitor(cdnv, adnf);
rootNode.accept(dnv);
List<DependencyNode> nodes = cdnv.getNodes();
for (int i = 0; i < nodes.size(); i++) {
getLog().info(i + ": " + nodes.get(i).toNodeString());
}
有谁知道如何获取托管依赖项?
【问题讨论】:
-
不,我不知道这是否对我有帮助
标签: java maven maven-plugin pom.xml maven-dependency-plugin