在java中对依赖关系树进行排序

时间:2017-01-30 13:59:33

标签: java maven ant dependencies graph-theory

我有一个库列表。他们使用Maven,Ant或Gradle作为构建者。

我创建了两个Map<String, Set<String>>个对象。第一张地图包含libraryNameSet结果工件,第二张地图的第一级依赖关系为libraryNameSet

有些图书馆相互依赖。

所以这就是我的问题: 我需要根据彼此之间的依赖关系对所有库进行排序,从那些不依赖于其他库的库到最依赖的库。

1 个答案:

答案 0 :(得分:0)

您的库形成依赖关系图,其中从A到B的弧表示“A取决于B”。您需要对图表进行排序,以便列表中的库不依赖于库。这个顺序是拓扑排序

https://en.wikipedia.org/wiki/Topological_sorting

并且可以实现,例如通过卡恩的算法。