Sbt 如何列出所有配置及其说明?

Sbt 如何列出所有配置及其说明?,sbt,Sbt,我使用sbt 0.13.5 从sbt控制台,如何查看项目中所有已定义配置的列表(例如,编译,测试,等等)及其说明?我不知道是否有用于此的内置命令。除非有这样的任务,否则您可以创建一个任务: 构建.sbt lazy val showConfigurations = taskKey[Unit]("Shows all configurations") lazy val inAnyProjectAndConfiguration = ScopeFilter(inAnyProject, inAnyConf

我使用sbt 0.13.5


从sbt控制台,如何查看项目中所有已定义配置的列表(例如,
编译
测试
,等等)及其说明?

我不知道是否有用于此的内置命令。除非有这样的任务,否则您可以创建一个任务:

构建.sbt

lazy val showConfigurations = taskKey[Unit]("Shows all configurations")

lazy val inAnyProjectAndConfiguration = ScopeFilter(inAnyProject, inAnyConfiguration)

showConfigurations := {
  val configs = configuration.all(inAnyProjectAndConfiguration).value.toSet
  configs.filter(_.isPublic).foreach(c => println(s"${c.name} ${c.description}"))
}

您可能看不到某些配置的描述,因为它不是强制性的。事实上,似乎没有一个默认版本有它。

一个简单的版本可以简单地工作:

// Add below snippet to your build.sbt
lazy val printConfig = taskKey[Unit]("Print config")
printConfig := {
  val conf = ConfigFactory.load()
  println(conf)
}

然后在您的sbt控制台中运行
printConfig

谢谢-答案的一个很好的部分就是知道它不是sbt的内置命令。上面的代码导致“对未定义设置的运行时引用:”当添加到my build.sbt时-这是否必须进入build.scala?@shawnuser3862921当使用sbt 0.13.5时,您应该能够将我的代码复制粘贴到build.sbt,并且它应该可以工作。我刚试过。它对我不起作用,我刚试过:)不过,如果我积极地将你的原始答案解释为“不,没有内置的命令”,那么它就回答了我的原始问题。@shawnuser3862921你能告诉我你说它不起作用是什么意思吗?没有显示配置或只是没有编译?也许我可以用这个解决方案创建一个简单的gist/github项目,这样你就可以在你的机器上测试它,因为它应该可以正常工作。在一个关于SBT的配置范围的问题上,你可能会混淆TypeSafe配置(用于应用程序),通常在SBT插件中定义或使用