sbt in Action一书介绍了配置密钥
的概念然后列出默认配置:
Q1)是否可以从sbt会话中打印出所有配置的列表?如果没有,我可以在sbt文档中找到有关配置的信息吗?
Q2)对于特定的配置,例如'编译',是否可以从sbt会话打印出配置密钥列表?如果没有,我可以在sbt文档中找到有关配置键的信息吗?
答案 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;但你可以打印出来。