gpt4 book ai didi

scala - 如何让 SBT key 查看当前配置的设置?

转载 作者:行者123 更新时间:2023-12-01 01:07:32 25 4
gpt4 key购买 nike

我有以下 build.sbt文件:

version := "0.0.1"

version in Test := "0.0.1-DEBUG"

name <<= (version) apply { v:String => "demo-%s".format(v) }

虽然版本在“测试”配置中似乎是正确的,
> show test:version
[info] 0.0.1-DEBUG

该名称似乎没有考虑更具体的设置。
> show name
[info] demo-0.0.1
> show test:name
[info] demo-0.0.1

这显然是我真正想做的一个大大简化的例子,但我认为它说明了问题/误解。

编辑 (2013-07-04) :我真正想做的是改变 javaOptionsIntegrationTest配置(b/c 我们启动一个服务,然后针对它运行测试代码,我希望被测试的服务在稍微沙盒的模式下运行)。设置 javaOptions in IntegrationTest很容易(和 show it:java-options 确认),但实际上并没有被 runner 使用除非我不厌其烦地明确定义 it:runner使用 it:java-options .我本来以为 *:runner更喜欢最具体的依赖变量。

最佳答案

我在 sbt 0.11 和 0.12.1 中尝试过这个,它有效:

version := "0.0.1"

version in Test := "0.0.1-DEBUG"

name <<= (version) apply { v:String => "demo-%s".format(v) }

name in Test <<= (version in Test) apply { v:String => "demo-%s".format(v) }

更新

如果您使用的是 Build.scala 文件,则可以跨项目推广此任务。下面是一个例子:
import sbt._
import sbt.Keys._

object DemoBuild extends Build {

lazy val demo = Project(
id = "demo",
base = file("."),
settings = Project.defaultSettings ++ Seq(
organization := "com.demo",
scalaVersion := "2.10.0"
) ++ addNameAndVersion("0.0.1", "demo")
)


def addNameAndVersion(projectVersion:String, projectName:String):Seq[sbt.Project.Setting[_]] = {
Seq(
version := projectVersion,
version in Test := projectVersion + "-DEBUG",
name <<= version.apply(s => "%s-%s".format(projectName, s)),
name in Test <<= (version in Test).apply(s => "%s-%s".format(projectName, s))
)
}

}

关于scala - 如何让 SBT key 查看当前配置的设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17437443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com