出于各种原因,我有一个由enhance
触发的任务compile
,因为我们需要它来运行我们的代码而我不希望程序员只是编译而忘记增强。
这样可以正常工作,但在某些情况下,尤其是调试增强器时,我需要compileOnly
任务执行与compile
完全相同的操作但没有附加触发器。
有没有办法克隆"编译?我试过了:
object EnhancerBuild extends Build {
lazy val compileOnly = taskKey[Analysis]("compileOnly") in Compile
lazy val root = Project("root", file(".")) settings(
compileOnly <<= compileTask
)
}
但它找不到compilerReporter
&amp; compileInputs
设置。
答案 0 :(得分:2)
除非我弄错了,否则你真的需要另外一个模仿sbt中许多人的任务,例如: compile
。如果是,请参阅build.sbt
:
lazy val compileOnly = taskKey[sbt.inc.Analysis]("compileOnly")
compileOnly <<= (compile in Compile)
根据定义,compileOnly
取决于compile
范围内的Compile
。
> inspect compileOnly
[info] Task: sbt.inc.Analysis
[info] Description:
[info] compileOnly
[info] Provided by:
[info] {file:/C:/dev/sandbox/compile-copy/}compile-copy/*:compileOnly
[info] Defined at:
[info] C:\dev\sandbox\compile-copy\build.sbt:3
[info] Dependencies:
[info] compile:compile
[info] Delegates:
[info] *:compileOnly
[info] {.}/*:compileOnly
[info] */*:compileOnly