sbt 允许我们在根项目级别运行 sbt 命令。
如何在元构建级别运行命令?
(定义在root/project/project
dir)
我的用例是我的一些 sbt 插件具有相同依赖项的不同版本,并且较旧的依赖项被逐出。我想使用 sbt-dependency-graph 进行调查
您可以使用reload plugins http://www.scala-sbt.org/1.0/docs/Command-Line-Reference.html#Commands+for+managing+the+build+definition从主要项目sbt
会话切换到构建项目的上下文:
sbt:root> reload plugins
[snip noise]
sbt:project> show libraryDependencies
[shows your sbt plugins from root/plugins.sbt along with their deps]
sbt:project> reload return
[back to the main project]
sbt:root>
As Jorge https://stackoverflow.com/users/2231391/jorge-vicente-cantero noted https://stackoverflow.com/a/47885200/455009,您可以在元构建中安装 sbt-dependency-graphroot/project/project/plugins.sbt
使其可用于构建项目上下文reload plugins
。一如既往,请记住sbt是递归的 http://www.scala-sbt.org/1.0/docs/Organizing-Build.html#sbt+is+recursive——从构建项目中你可以做reload plugins
again达到元构建级别。从那里show libraryDependencies
只会显示 sbt-dependency-graph 来自root/project/project
, 例如。
在我看来,这是 sbt UX 的一个奇怪的方面,因为它并不完全直观reload
命令将是此功能的路径,但只要您能记住该部分,help reload
为回忆子命令提供了很好的总结。
我不知道这是否是“错误”的方式,但我发现它比更改目录更方便,因为我不需要启动另一个sbt
会话,并且可以来回移动或进一步递归而无需重新启动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)