与this question分开,我希望能够以两种不同的方式来编译sbt项目,即使用不同的scalacOptions
。重复问题的答案解释了为什么引入另一种配置无济于事,因为您还需要专用的资源。
所以。但我不希望有专门的消息来源。我想编译完全相同的源,但使用不同的编译器设置。因此,我想解决方案必须是定义一个新任务,而不是进行编译。喜欢
val myCompile = taskKey[???]("Compiles my way")
scalacOptions in MyCompile ++= Seq("-elide-below", "1")
然后,我希望以最小的努力将默认的
compile
任务复制到一个单独的target
目录中,并且可以将其提供给myCompile:assembly
...吗?我该怎么做? 最佳答案
tl; dr 使用inspect
可以了解compile
的返回类型。
> inspect compile
[info] Task: sbt.inc.Analysis
...
这样,您应该在
build.sbt
中具有以下内容:val myCompile = taskKey[sbt.inc.Analysis]("Compiles my way")
myCompile <<= compile in Compile
scalacOptions in myCompile ++= Seq("-elide-below", "1")