关键配置:如何列出配置和密钥?

时间:2017-08-26 09:38:47

标签: sbt

sbt in Action一书介绍了配置密钥

的概念

然后列出默认配置:

  • 编译
  • 测试
  • 运行
  • IntegrationTest

Q1)是否可以从sbt会话中打印出所有配置的列表?如果没有,我可以在sbt文档中找到有关配置的信息吗?

Q2)对于特定的配置,例如'编译',是否可以从sbt会话打印出配置密钥列表?如果没有,我可以在sbt文档中找到有关配置键的信息吗?

1 个答案:

答案 0 :(得分:3)

所有配置列表

为此,您可以使用 <?php if (( is_page('police-check-online') AND ! wp_is_mobile() )) { ?> <div style="float:right; width:450px; margin-right:350px; color:white; margin-bottom:-250px; margin-top:120px; z-index:100;"> <div style="float:left; width:50%;"><h3>fit2work badges</h3></div><div style="float:left; width:50%; z-index:200;"><a href="https://fit2work.com.au/Public/badge" class="badgebtn">PURCHASE NOW</a></div> <div style="z-index:300;"><a href="https://fit2work.com.au/Public/badge"><img src="http://mercury.com.au/wp-content/uploads/badges/fit2workbadges_03.png"></a></div></div> <?php } ?> ,如此:

setting

显示所有配置的名称。您可以在val allConfs = settingKey[List[String]]("Returns all configurations for the current project") val root = (project in file(".")) .settings( name := "scala-tests", allConfs := { configuration.all(ScopeFilter(inAnyProject, inAnyConfiguration)).value.toList .map(_.name) }

中访问有关每个配置的更多详细信息

交互式sbt控制台的输出:

map

如果你想要打印它们,你可以拥有> allConfs [info] * provided [info] * test [info] * compile [info] * runtime [info] * optional 并在设置定义中使用settingKey[Unit]

配置中所有键的列表

为此,我们需要一个println(可能还有其他方法,但我还没有探索过,在某些情况下我感到满意......)以及解析用户的解析器输入

所有加入此代码段中的上述设置:

task

现在您可以使用它:

import sbt._ import sbt.Keys._ import complete.DefaultParsers._ val allConfs = settingKey[List[String]]("Returns all configurations for the current project") val allKeys = inputKey[List[String]]("Prints all keys of a given configuration") val root = (project in file(".")) .settings( name := "scala-tests", allConfs := { configuration.all(ScopeFilter(inAnyProject, inAnyConfiguration)).value.toList .map(_.name) }, allKeys := { val configHints = s"One of: ${ configuration.all(ScopeFilter(inAnyProject, inAnyConfiguration)).value.toList.mkString(" ") }" val configs = spaceDelimited(configHints).parsed.map(_.toLowerCase).toSet val extracted: Extracted = Project.extract(state.value) val l = extracted.session.original.toList .filter(set => set.key.scope.config.toOption.map(_.name.toLowerCase) .exists(configs.contains)) .map(_.key.key.label) l } )

如果您处于交互模式,可以在$ sbt "allKeys compile"后按Tab键查看提示:

allKeys

由于> allKeys One of: provided test compile runtime optional allKeys,如果您只是&#34;返回它,那么它的输出就不会出现在sbt控制台上。&#34;但你可以打印出来。