在 java 中对依赖关系树进行排序
Sorting the dependencies tree in java
我有一个图书馆列表。他们使用 Maven、Ant 或 Gradle 作为构建器。
我创建了两个 Map<String, Set<String>>
对象。第一张地图有 libraryName
和 Set
个生成的工件,第二张地图有 libraryName
和 Set
个其第一级依赖项。
有些库相互依赖。
所以这是我的问题:
我需要根据彼此之间的依赖关系对所有库进行排序,从不依赖于其他库到最依赖的库。
您的库形成了一个依赖关系图,其中从 A 到 B 的弧表示 "A depends on B"。您需要对图表进行排序,以便没有库依赖于列表中后面的一个。这个顺序是拓扑排序
https://en.wikipedia.org/wiki/Topological_sorting
并且可以实现,例如通过 Kahn 的算法。
我有一个图书馆列表。他们使用 Maven、Ant 或 Gradle 作为构建器。
我创建了两个 Map<String, Set<String>>
对象。第一张地图有 libraryName
和 Set
个生成的工件,第二张地图有 libraryName
和 Set
个其第一级依赖项。
有些库相互依赖。
所以这是我的问题: 我需要根据彼此之间的依赖关系对所有库进行排序,从不依赖于其他库到最依赖的库。
您的库形成了一个依赖关系图,其中从 A 到 B 的弧表示 "A depends on B"。您需要对图表进行排序,以便没有库依赖于列表中后面的一个。这个顺序是拓扑排序
https://en.wikipedia.org/wiki/Topological_sorting
并且可以实现,例如通过 Kahn 的算法。