Sbt 如何复制任务,例如编译?

Sbt 如何复制任务,例如编译?,sbt,Sbt,出于各种原因,我有一个任务enhance由compile触发,因为我们需要它来运行代码,我不希望程序员只是编译而忘记增强 这很好,但在某些情况下,特别是在调试增强器时,我需要一个compileOnly任务,执行与compile完全相同的操作,但不附带触发器 有没有“克隆”编译的方法?我试过: object EnhancerBuild extends Build { lazy val compileOnly = taskKey[Analysis]("compileOnly") in Compi

出于各种原因,我有一个任务
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
   )
}
对象增强Build扩展构建{
编译中的lazy val compileOnly=taskKey[Analysis](“compileOnly”)
lazy val root=项目(“根”、文件(“.”)设置(

compileOnly除非我弄错了,否则您确实需要另一个模拟sbt中众多任务之一的任务,例如,
compile
。如果是这样,请参阅
build.sbt
中的以下内容:

lazy val compileOnly = taskKey[sbt.inc.Analysis]("compileOnly")

compileOnly <<= (compile in 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