【发布时间】:2018-12-31 17:58:20
【问题描述】:
谁能解释一下 compile 和 Compile 在这个神秘的 sbt 成语中的含义:
compile in Compile <<= (compile in Compile).dependsOn(Def.task {
println("task is running") // or whatever code here in the body
})
【问题讨论】:
标签: sbt
谁能解释一下 compile 和 Compile 在这个神秘的 sbt 成语中的含义:
compile in Compile <<= (compile in Compile).dependsOn(Def.task {
println("task is running") // or whatever code here in the body
})
【问题讨论】:
标签: sbt
compile 表示编译任务,而不是 package
Compile 表示编译配置(源自/匹配 Apache Ivy 的配置),而不是 Test
如果您考虑compile in Test 可能更容易理解,它是compile 任务范围为Test 配置并因此编译测试源。
此外,“无作用域”compile 键实际上并未在 sbt 的默认值中定义,因此当您在 shell 中执行 compile 时,由于 sbt 的“委托规则”,实际执行的是 compile in Compile,您可以在Scope delegation sbt 文档中阅读。
【讨论】:
compile 任务会有Test 配置? compile 任务如何做一些事情但编译......这些事情在回答这个问题时需要变得非常清楚
compile in Test 将编译您的测试源。 compile 除了编译之外什么都不做,但它是关于它编译的内容。
(compile in Compile) 在这里扮演什么角色,也许我可以编写一个有凝聚力的答案。