使用Build.scala进行交叉编译时,如何为每个Scala版本设置不同的s
发布时间:2020-12-16 19:15:03 所属栏目:安全 来源:网络整理
导读:使用 Scala 2.10和SBT 0.13.2构建时,我希望使用-language:_,但Scala 2.9无法识别.关于为交叉编译设置不同的scalacOptions( Conditional scalacOptions with SBT)有一个问题,但它是关于build.sbt的.我正在使用Build.scala,因为我正在进行多项目构建. 我试过
使用
Scala 2.10和SBT 0.13.2构建时,我希望使用-language:_,但Scala 2.9无法识别.关于为交叉编译设置不同的scalacOptions(
Conditional scalacOptions with SBT)有一个问题,但它是关于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 救命? 解决方法
在SBT 0.13中,这将起作用:
def scalacOptionsVersion(scalaVersion: String) = { Seq( "-unchecked","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... ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Wildcard与Regular Expression的区别
- twitter-bootstrap-3 – 如何使用bootstrap 3创建一个粘滞的
- AngularJS不区分大小写的绑定到静态选择下拉列表
- 为Docker容器指定超级用户PostgreSQL密码
- Angular实现DIV自动滚屏到底部scrollToBottom
- 提供Webservice的地方
- 使用AngularJS排除URL中的路径
- bash – 找到字段的编号
- webservice不能序列化接口问题,返回值为IList或者参数为接
- Access restriction: The type BASE64Encoder is not acces
推荐文章
站长推荐
热点阅读