如何访问像 assemblyJarName 这样的 sbt 变量的值?
How to access the value of sbt variables like assemblyJarName?
在版本 1.1.5 中。
例如,如何在 build.sbt?
中打印它
println(assemblyJarName.value)
不行,结果报错:
[error] Did you mean assemblyPackageDependency / assemblyJarName ?
如果 assemblyJarName
在 build.sbt
中这样定义
assemblyJarName in assembly := "hello.jar"
然后在调用 value
时尝试提供明确的任务范围 assembly
,如下所示
println((assemblyJarName in assembly).value)
这是必需的,因为 assemblyJarName
设置是 scoped to a task 如果我们执行 inspect assemblyJarName
就可以看到
inspect assemblyJarName
[info] No entry for key.
[info] Description:
[info] name of the fat jar
[info] Delegates:
[info] assemblyJarName
[info] ThisBuild / assemblyJarName
[info] Global / assemblyJarName
[info] Related:
[info] assembly / assemblyJarName
[info] assemblyPackageDependency / assemblyJarName
[info] assemblyPackageScala / assemblyJarName
当我们只提供基本设置时,它的 default 范围就像这样
inspect projFoo / Zero / Zero / assemblyJarName
| | |
project configuraition task
但是assemblyJarName
不存在于这样的范围内
inspect assemblyJarName
[info] No entry for key.
但是在 Related
部分我们看到
[info] Related:
[info] assembly / assemblyJarName
[info] assemblyPackageDependency / assemblyJarName
[info] assemblyPackageScala / assemblyJarName
这告诉我们 assemblyJarName
设置的范围是以下三个任务
assembly
assemblyPackageDependency
assemblyPackageScala
在版本 1.1.5 中。
例如,如何在 build.sbt?
中打印它
println(assemblyJarName.value)
不行,结果报错:
[error] Did you mean assemblyPackageDependency / assemblyJarName ?
如果 assemblyJarName
在 build.sbt
中这样定义
assemblyJarName in assembly := "hello.jar"
然后在调用 value
时尝试提供明确的任务范围 assembly
,如下所示
println((assemblyJarName in assembly).value)
这是必需的,因为 assemblyJarName
设置是 scoped to a task 如果我们执行 inspect assemblyJarName
inspect assemblyJarName
[info] No entry for key.
[info] Description:
[info] name of the fat jar
[info] Delegates:
[info] assemblyJarName
[info] ThisBuild / assemblyJarName
[info] Global / assemblyJarName
[info] Related:
[info] assembly / assemblyJarName
[info] assemblyPackageDependency / assemblyJarName
[info] assemblyPackageScala / assemblyJarName
当我们只提供基本设置时,它的 default 范围就像这样
inspect projFoo / Zero / Zero / assemblyJarName
| | |
project configuraition task
但是assemblyJarName
不存在于这样的范围内
inspect assemblyJarName
[info] No entry for key.
但是在 Related
部分我们看到
[info] Related:
[info] assembly / assemblyJarName
[info] assemblyPackageDependency / assemblyJarName
[info] assemblyPackageScala / assemblyJarName
这告诉我们 assemblyJarName
设置的范围是以下三个任务
assembly
assemblyPackageDependency
assemblyPackageScala