在sbt中,如何在所有配置中覆盖控制台的scalacOptions?
我喜欢在顶层定义
scalacOptions(如现在忽略项目轴):
scalacOptions += "-Ywarn-unused-import" 但是后来我意识到这对控制台来说太严格了.所以我试过设置: scalacOptions in console ~= (_ filterNot (_ == "-Ywarn-unused-import")) 但是这并不奏效(REPL中仍然有(致命的)警告). 我用检查来试着理解为什么: > inspect console [info] Task: Unit [info] Description: [info] Starts the Scala interpreter with the project classes on the classpath. [info] Provided by: [info] {file:/a/}b/compile:console [info] Defined at: [info] (sbt.Defaults) Defaults.scala:261 [info] Dependencies: [info] compile:console::compilers [info] compile:console::initialCommands [info] compile:console::fullClasspath [info] compile:console::taskTemporaryDirectory [info] compile:console::scalaInstance [info] compile:console::streams [info] compile:console::cleanupCommands [info] compile:console::scalacOptions [info] Delegates: [info] compile:console [info] *:console [info] {.}/compile:console [info] {.}/*:console [info] */compile:console [info] */*:console [info] Related: [info] test:console 注意:控制台是 >由编译提供:console 然后: > inspect compile:console::scalacOptions [info] Task: scala.collection.Seq[java.lang.String] [info] Description: [info] Options for the Scala compiler. [info] Provided by: [info] {file:/a/}b/compile:scalacOptions [info] Defined at: [info] (sbt.Classpaths) Defaults.scala:1593 [info] Reverse dependencies: [info] compile:console [info] Delegates: [info] compile:console::scalacOptions [info] compile:scalacOptions [info] *:console::scalacOptions [info] *:scalacOptions [info] {.}/compile:console::scalacOptions [info] {.}/compile:scalacOptions [info] {.}/*:console::scalacOptions [info] {.}/*:scalacOptions [info] */compile:console::scalacOptions [info] */compile:scalacOptions [info] */*:console::scalacOptions [info] */*:scalacOptions [info] Related: [info] *:console::scalacOptions [info] compile:scalacOptions [info] *:scalacOptions [info] */*:scalacOptions [info] test:scalacOptions 注意:compile:console :: scalacOptions是 >由编译提供:scalacOptions 我的问题是如何覆盖控制台的所有配置的scalacOptions?是否有可能改变代理链? 我想避免在(编译,控制台)中设置scalacOptions(因为它将被重复(Test,console))或定义一个valac选项. 解决方法
我不认为我们可以给出编译的存在:由sbt的默认值提供的scalacOptions.具有较高优先级的唯一范围是编译:console :: scalacOptions. lazy val commonSettings = Seq( scalaVersion := "2.11.4",scalacOptions += "-Ywarn-unused-import",scalacOptions in (Compile,console) ~= (_ filterNot (_ == "-Ywarn-unused-import")),scalacOptions in (Test,console) := (scalacOptions in (Compile,console)).value )
不,这是不可能的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |