sbt-dependency-graph 等效于项目间的依赖关系
sbt-dependency-graph equivalent for inter-project dependencies
是否有 sbt-dependency-graph
等同于项目间依赖关系(即 projectA dependsOn projectB
)?作为 sbt 插件或使用 sbt 内部组件。
遗憾的是,我不知道有什么插件可以满足您的需求。
这里有一个简单的SBT任务,可以快速显示项目中的所有依赖项。这真的很基本,我相信我们可以在输出的 visualization/formatting 中做得更好。在您的 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
},
...
}
如果您有一个聚合所有子项目的根项目,那么调用 showInterProjectDependencies
将递归调用所有子项目中的任务。例如:
lazy val projectRoot = (
projectTemplate("MyProjectRoot", ".")
aggregate(subproject1, subproject2, ...)
)
我最后继续写了一个:sbt-project-graph。
是否有 sbt-dependency-graph
等同于项目间依赖关系(即 projectA dependsOn projectB
)?作为 sbt 插件或使用 sbt 内部组件。
遗憾的是,我不知道有什么插件可以满足您的需求。
这里有一个简单的SBT任务,可以快速显示项目中的所有依赖项。这真的很基本,我相信我们可以在输出的 visualization/formatting 中做得更好。在您的 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
},
...
}
如果您有一个聚合所有子项目的根项目,那么调用 showInterProjectDependencies
将递归调用所有子项目中的任务。例如:
lazy val projectRoot = (
projectTemplate("MyProjectRoot", ".")
aggregate(subproject1, subproject2, ...)
)
我最后继续写了一个:sbt-project-graph。