sbt - 如何访问像 assemblyJarName 这样的 sbt 变量的值?
问题描述
在 1.1.5 版中。
例如,如何在 build.sbt 中打印它?
println(assemblyJarName.value)
不会工作,原来是一个错误:
[error] Did you mean assemblyPackageDependency / assemblyJarName ?
解决方案
如果像这样assemblyJarName
定义build.sbt
assemblyJarName in assembly := "hello.jar"
然后尝试在如下assembly
调用时提供明确的任务范围value
println((assemblyJarName in assembly).value)
这是必需的,因为assemblyJarName
设置的范围是一个我们可以看到如果我们执行的任务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
当我们只提供裸设置时,它的默认范围就像这样
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
推荐阅读
- css - 如何在 React 中将数组的元素一个一个地映射到另一个而不是并排
- winapi - 如何获得窗口区域的确切大小,包括隐藏控件?
- angular - 如何将属性值作为对象值发送?
- react-native - 在 React Navigation v5 中为嵌套路由实现 StackRouter
- python - Python 列表重复
- flutter - 如何从 Flutter 中删除默认的 chrome 打开?
- redis - redis FLUSHALL ASYNC 命令会阻塞调用者吗?
- ffmpeg - 如何在 FFMPEG 中将 2 个代码片段合并为 1 个?
- c - 构建 GLFW/OpenGL 程序时未定义的引用?
- javascript - firebase - 每当用户注册时使用 updateProfile