我認爲inConfig(conf)(settings)
會複製所有設置到給定的配置。但這似乎沒有達到我所期望的。爲什麼inConfig(conf)(設置)不選擇某些設置?
給定的配置:
lazy val Monkjack: Configuration = config("monkjack")
然後我做的:
inConfig(Monkjack)(Defaults.compileSettings)
所以我可以做編譯爲我所期望的:
sbt clean monkjack:compile
[info] Compiling 17 Scala sources to ...
[success] Total time: 9 s, completed 01-Sep-2014 09:40:41
所以現在我想調整使用這個新配置時的scalac選項(實際選項是不可撤銷的,這個只是有用的,因爲它有冗長的ou tput的所以很容易看出其是否正在使用或不):
scalacOptions in Monkjack := Seq("-Yshow-syms")
當我monjack:compile
,我沒有看到觸發此選項。這就像上面的線沒有添加。但是,如果我還添加了以下幾行,它就可以工作!
sources in Monkjack := (sources in Compile).value
sourceDirectory in Monkjack := (sourceDirectory in Compile).value,
那麼,爲什麼我需要的最後兩行,什麼是inConfig
實際上做如果不做我的期望。另外一個奇怪的是,當我這樣做時,儘管它有效,但我得到了兩個編譯階段,一個到target/classes
,另一個到target/monkjack-classes
。
編輯(檢查而不源/ sourceDirectory設置)
> inspect tree monkjack:compile
[info] monkjack:compile = Task[sbt.inc.Analysis]
[info] +-monkjack:compile::compileInputs = Task[sbt.Compiler$Inputs]
[info] | +-*:compilers = Task[sbt.Compiler$Compilers]
[info] | +-monkjack:sources = Task[scala.collection.Seq[java.io.File]]
[info] | +-*/*:maxErrors = 100
[info] | +-monkjack:incCompileSetup = Task[sbt.Compiler$IncSetup]
[info] | +-monkjack:compile::streams = Task[sbt.std.TaskStreams[sbt.Init$ScopedKey[_ <: Any]]]
[info] | | +-*/*:streamsManager = Task[sbt.std.Streams[sbt.Init$ScopedKey[_ <: Any]]]
[info] | |
[info] | +-*/*:sourcePositionMappers = Task[scala.collection.Seq[scala.Function1[xsbti.Position, scala.Option[xsbti.Position]]]]
[info] | +-monkjack:dependencyClasspath = Task[scala.collection.Seq[sbt.Attributed[java.io.File]]]
[info] | +-monkjack:classDirectory = target/scala-2.11/monkjack-classes
[info] | +-monkjack:scalacOptions = Task[scala.collection.Seq[java.lang.String]]
[info] | +-*:javacOptions = Task[scala.collection.Seq[java.lang.String]]
[info] | +-*/*:compileOrder = Mixed
[info] |
[info] +-monkjack:compile::streams = Task[sbt.std.TaskStreams[sbt.Init$ScopedKey[_ <: Any]]]
[info] +-*/*:streamsManager = Task[sbt.std.Streams[sbt.Init$ScopedKey[_ <: Any]]]
[info]
你可以做'show monkjack:scalacOptions'嗎? – 2014-09-01 09:30:21
您是否看到'inspect tree monkjack:compile'中列出的'monkjack:scalacOptions'? – 2014-09-01 09:40:02
> show monkjack:scalacOptions [info] List(-Yshow-syms) – monkjack 2014-09-01 09:53:21