使用Build.scala进行交叉编译时,如何为每个Scala版本设置不同的scalacOptions?

城市流浪者

使用Scala 2.10和SBT 0.13.2进行构建时,我想拥有-language:_,但是Scala 2.9无法识别。有一个关于scalacOptions交叉编译设置不同的问题带有SBT的条件scalacOptions),但有关build.sbt我正在使用,Build.scala因为我正在执行多项目构建。

我已经试过了:

  def scalacOptionsVersion(v: String) = {
    Seq(
      "-unchecked",
      "-deprecation",
      "-Xlint",
      "-Xfatal-warnings",
      "-Ywarn-dead-code",
      "-target:jvm-1.7",
      "-encoding", "UTF-8") ++ (
    if (v.startsWith("2.9")) Seq() else Seq("-language:_"))
  }

  override val settings = super.settings ++ Seq(
    ...,
    scalaVersion := "2.10.4",
    scalacOptions <++= scalaVersion(scalacOptionsVersion),
    crossScalaVersions := Seq("2.9.2", "2.10.4", "2.11.4"),
    ...
  )

但我得到一个错误:

[error] /Users/benwing/devel/lemkit/scala/project/build.scala:29: type mismatch;
[error]  found   : sbt.Def.Initialize[Equals]
[error]  required: sbt.Def.Initialize[sbt.Task[?]]
[error] Note: Equals >: sbt.Task[?], but trait Initialize is invariant in type T.
[error] You may wish to define T as -T instead. (SLS 4.5)
[error]     scalacOptions <++= scalaVersion(scalacOptionsVersion),
[error]                                    ^
[error] one error found

帮助?

Sksamuel

在SBT 0.13+中,它将起作用:

def scalacOptionsVersion(scalaVersion: String) = {
  Seq(
    "-unchecked",
    "-deprecation",
    "-Xlint",
    "-Xfatal-warnings",
    "-Ywarn-dead-code",
    "-target:jvm-1.7",
    "-encoding", "UTF-8"
  ) ++ CrossVersion.partialVersion(scalaVersion) match {
         case Some((2, scalaMajor)) if scalaMajor == 9 => Nil
         case _ => Seq("-language:_")
       }
}


val appSettings = Seq(
  scalacOptions := scalacOptionsVersion(scalaVersion.value)

  // other settings...
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

编译Build.scala时如何设置SBT使用的scalacOptions?

来自分类Dev

如何设置Android Build版本(使用Xamarin)?

来自分类Dev

如何交叉编译支持不同核心库API的Scala版本?

来自分类Dev

当副本包含空格时,如何使用bazel在docker build图像上交叉编译tensorflow-serving

来自分类Dev

scala self类型可以在使用`extends`时进行编译吗?

来自分类Dev

如何使用SBT在build.scala中使用-D变量?

来自分类Dev

交叉编译时如何使用外部库?

来自分类Dev

如何使用go build -ldflags在编译时设置布尔变量

来自分类Dev

如何使用project / Build.scala生成java playproject?

来自分类Dev

如何在Build.scala文件中使用'%%%'

来自分类Dev

如何使用project / Build.scala生成java playproject?

来自分类Dev

如何使用Dockerfile进行docker-build?

来自分类Dev

如何使用Dockerfile进行docker-build?

来自分类Dev

如何在进行交叉编译时切换/选择要使用的代码

来自分类Dev

如何使用交叉编译器进行编译?

来自分类Dev

sbt使用错误的scala版本,而不是使用build.sbt中的配置

来自分类Dev

使用automake进行交叉编译时,重要的是什么?

来自分类Dev

使用Cloud Build从git进行连续部署

来自分类Dev

使用build.gradle进行部署

来自分类Dev

Scala Play消息文件可以内联或重复使用build.sbt中的版本

来自分类Dev

使用PhoneGap Build时应用无输出

来自分类Dev

使用TFS Build时的中介组件

来自分类Dev

如何在 c++ Autotools 项目中使用不同版本的 g++ 进行编译

来自分类Dev

如何在编译Scala文件之前在SBT Build.scala中运行Scala代码?

来自分类Dev

使用Build> Profile时XCode 5无法编译更正

来自分类Dev

如何使用多个build.gradle文件?

来自分类Dev

用sbt交叉编译Scala时如何具有不同的源代码?(MurmurHash中的更改)

来自分类Dev

如何为每个不同的元素使用数组的每个值

来自分类Dev

如何为不同的程序使用不同的Java版本?

Related 相关文章

  1. 1

    编译Build.scala时如何设置SBT使用的scalacOptions?

  2. 2

    如何设置Android Build版本(使用Xamarin)?

  3. 3

    如何交叉编译支持不同核心库API的Scala版本?

  4. 4

    当副本包含空格时,如何使用bazel在docker build图像上交叉编译tensorflow-serving

  5. 5

    scala self类型可以在使用`extends`时进行编译吗?

  6. 6

    如何使用SBT在build.scala中使用-D变量?

  7. 7

    交叉编译时如何使用外部库?

  8. 8

    如何使用go build -ldflags在编译时设置布尔变量

  9. 9

    如何使用project / Build.scala生成java playproject?

  10. 10

    如何在Build.scala文件中使用'%%%'

  11. 11

    如何使用project / Build.scala生成java playproject?

  12. 12

    如何使用Dockerfile进行docker-build?

  13. 13

    如何使用Dockerfile进行docker-build?

  14. 14

    如何在进行交叉编译时切换/选择要使用的代码

  15. 15

    如何使用交叉编译器进行编译?

  16. 16

    sbt使用错误的scala版本,而不是使用build.sbt中的配置

  17. 17

    使用automake进行交叉编译时,重要的是什么?

  18. 18

    使用Cloud Build从git进行连续部署

  19. 19

    使用build.gradle进行部署

  20. 20

    Scala Play消息文件可以内联或重复使用build.sbt中的版本

  21. 21

    使用PhoneGap Build时应用无输出

  22. 22

    使用TFS Build时的中介组件

  23. 23

    如何在 c++ Autotools 项目中使用不同版本的 g++ 进行编译

  24. 24

    如何在编译Scala文件之前在SBT Build.scala中运行Scala代码?

  25. 25

    使用Build> Profile时XCode 5无法编译更正

  26. 26

    如何使用多个build.gradle文件?

  27. 27

    用sbt交叉编译Scala时如何具有不同的源代码?(MurmurHash中的更改)

  28. 28

    如何为每个不同的元素使用数组的每个值

  29. 29

    如何为不同的程序使用不同的Java版本?

热门标签

归档