我想运行一些Scala代码,暂时只是为了打印出“Hello”,但我希望在SBT项目中编译Scala代码之前运行Scala代码。我发现在build.sbt中可以使用以下内容。
compile in Compile <<= compile in Compile map {
comp => {
println("Hello")
}
comp
}
然而,我希望在Build.scala中完成它,我该如何在Build.scala中实现?
import sbt._
import Keys._
你应该能够在Build.scala
中使用完全相同的代码。
话虽如此,你应该使用dependsOn
而不是map
:
compile in Compile <<= (compile in Compile).dependsOn(Def.task {
println("Hello")
})
map
呢?我认为map
是在执行它所映射的任务之后,而dependsOn
则使得依赖关系相反。 - Jacek Laskowskimap
会使其在之后执行。dependsOn
会在之前执行。 - sjrd
sbt._
和Keys._
,你就可以在Build.scala
中完全使用相同的代码。不过需要注意的是,你需要使用dependsOn
而不是map
:<<= (compile in Compile).dependsOn(Def.task { println("Hello") })
。 - sjrd