简体   繁体   English

SBT [1.1.1]不同的Scala版本具有不同的libraryDependencies

[英]SBT[1.1.1] Different libraryDependencies for different Scala Versions

I have tried the solution from: SBT cross building - choosing a different library version for different scala version however this results in 我尝试过以下解决方案: SBT交叉构建-为不同的scala版本选择不同的库版本,但这导致

build.sbt:27: error: No implicit for Append.Value[Seq[sbt.librarymanagement.ModuleID], sbt.Def.Initialize[sbt.librarymanagement.ModuleID]] found,
  so sbt.Def.Initialize[sbt.librarymanagement.ModuleID] cannot be appended to Seq[sbt.librarymanagement.ModuleID]
    libraryDependencies += scalaVersion(jsonDependency(_)),
                    ^
[error] sbt.compiler.EvalException: Type error in expression
[error] sbt.compiler.EvalException: Type error in expression
[error] Use 'last' for the full log.

What is the correct way of forcing library dependencies for different Scala versions in sbt 1.1.1? 在sbt 1.1.1中强制不同Scala版本的库依赖关系的正确方法是什么?

build.sbt: build.sbt:

libraryDependencies += scalaVersion(jsonDependency(_))

def jsonDependency(scalaVersion: String) = scalaVersion match {
  case "2.11.7" => "com.typesafe.play" %% "play-json" % "2.4.2"
  case "2.12.4" => "com.typesafe.play" %% "play-json" % "2.6.9"
}

The first line should be: 第一行应为:

libraryDependencies += jsonDependency(scalaVersion.value)

As for the rest, it's unnecessarily sensitive to exact Scala version numbers. 至于其余的,它对确切的Scala版本号不必要地敏感。 Consider using CrossVersion.partialVersion to be sensitive to the Scala major version only, as follows: 考虑使用CrossVersion.partialVersion Scala主版本敏感,如下所示:

def jsonDependency(scalaVersion: String) =
  "com.typesafe.play" %% "play-json" %
    (CrossVersion.partialVersion(scalaVersion) match {
      case Some((2, 11)) => "2.4.2"
      case _             => "2.6.9"
    })

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 sbt不同的库在测试中的依赖性比在普通模式下 - sbt different libraryDependencies in test than in normal mode 如何使用sbt-cross-building和sbt 0.13在sbtPlugin中为每个sbtVersion指定不同的libraryDependencies? - How to specify different libraryDependencies per sbtVersion in sbtPlugin with sbt-cross-building and sbt 0.13? 使用SBT为不同的库版本构建 - Build for different library versions with SBT Scala SBT:您可以将同一依赖项的两个不同版本导入一个构建文件吗? - Scala SBT: Can you import two different versions of the same dependency into one build file? 对子项目的sbt Build.scala完整配置的libraryDependencies - libraryDependencies on sbt Build.scala Full Configuration with sub-projects Spark-Scala build.sbt libraryDependencies未解决的依赖关系 - Spark-Scala build.sbt libraryDependencies UnresolvedDependency scala sbt libraryDependencies 提供 - 避免下载第 3 方库 - scala sbt libraryDependencies provided - Avoid downloading 3rd party library SBT跨建筑 - 为不同的scala版本选择不同的库版本 - SBT cross building - choosing a different library version for different scala version 针对不同版本的外部API构建Scala - Build Scala against different versions of external API SBT 多项目构建:2个不同版本的sbt播放插件用于不同的子项目 - SBT multi-project build : 2 different versions of sbt play plugin for different subprojects
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM