是否存在项目间依赖关系的sbt-dependency-graph
等价物(即projectA dependsOn projectB
)?无论是作为sbt插件还是使用sbt内部。
答案 0 :(得分:2)
不幸的是,我不知道有什么插件能够满足您的需求。
这是一个简单的SBT任务,可以快速显示项目中的所有依赖项。这是非常基本的,我相信我们可以在输出的可视化/格式化方面做得更好。在build.sbt
文件中添加以下内容。
lazy val showInterProjectDependencies = taskKey[String]("Print inter-project dependencies")
showInterProjectDependencies := {
val pd: Seq[ModuleID] = projectDependencies.value
val str = name + " -> " + pd.map(_.name).mkString(", ")
streams.value.log.info(str)
str
}
如果您有多项目构建,请在项目模板中添加:
def projectTemplate(name: String, dir: String): Project = {
Project(id = name, base = file(dir)).settings(
showInterProjectDependencies := {
val p: Seq[ModuleID] = projectDependencies.value
val str = name + " -> " + p.map(_.name).mkString(", ")
streams.value.log.info(str)
str
},
...
}
如果您有一个聚合所有子项目的Root项目,则调用showInterProjectDependencies
将递归调用所有子项目中的任务。 E.g:
lazy val projectRoot = (
projectTemplate("MyProjectRoot", ".")
aggregate(subproject1, subproject2, ...)
)
答案 1 :(得分:2)
我最后继续写下一篇:sbt-project-graph。