我有一個項目定義如下:使用不同的設置編譯在不同的命令
lazy val tests = Project(
id = "tests",
base = file("tests")
) settings(
commands += testScalalib
) settings (
sharedSettings ++ useShowRawPluginSettings ++ usePluginSettings: _*
) settings (
libraryDependencies <+= (scalaVersion)("org.scala-lang" % "scala-reflect" % _),
libraryDependencies <+= (scalaVersion)("org.scala-lang" % "scala-compiler" % _),
libraryDependencies += "org.tukaani" % "xz" % "1.5",
scalacOptions ++= Seq()
)
我想有這將只編譯這個項目裏面的一些文件的三個不同的命令。例如上面添加的testScalalib
命令應該只編譯一些特定的文件。
我最好的嘗試,到目前爲止是:
lazy val testScalalib: Command = Command.command("testScalalib") { state =>
val extracted = Project extract state
import extracted._
val newState = append(Seq(
(sources in Compile) <<= (sources in Compile).map(_ filter(f => !f.getAbsolutePath.contains("scalalibrary/") && f.name != "Typers.scala"))),
state)
runTask(compile in Compile, newState)
state
}
不幸的是,當我使用的命令,但它仍然編譯整個項目,而不僅僅是指定的文件...
你有任何想法如何我應該那樣做?
謝謝!有用! – mdemarne
如果作品不需要感謝,只需接受/投票就夠了;) – lpiepiora