有没有一种简单的方法来比较 sbt 构建文件中的版本而无需手工制作。例如
scalacOptions <++= scalaVersion { sv =>
if (sv >= "2.10.0") "-feature" :: Nil else Nil
}
(上面编译,但出于某种原因"2.9.2" >= "2.10.0"
......?!)
semverfi是一个 Scala 库,您可以将其添加到您的库中,project/plugins.sbt
并且可以在构建定义中使用:
libraryDependencies += "me.lessis" %% "semverfi" % "0.1.2"
由于 sbt 1.2.0 有一个内置 API:https ://www.scala-sbt.org/1.0/docs/sbt-1.2-Release-Notes.html#Semantic+Version+selector+API
例如你可以做
VersionNumber("2.12.5").matchesSemVer(SemanticSelector(">=2.12"))