我想使用sbt交叉编译功能使用Scala 2.10和2.11编译项目。问题是该项目包含一些Flink依赖项。但是Flink jar不遵循标准二进制格式(使用_2.10
或_2.11
后缀名称):scala 2.10 jar没有后缀而2.11有它
我找到了一个有效的解决方案。但我对此并不满意,我的问题是:是否有更简单和/或更优雅的方法来解决这个问题?
我目前的解决方案:
def flinkDependencies(scalaVersion: String) = {
if (scalaVersion.startsWith("2.10"))
Seq(
"org.apache.flink" % "flink-scala" % flinkVersion % "optional",
"org.apache.flink" % "flink-streaming-scala" % flinkVersion % "optional"
)
else
Seq(
"org.apache.flink" %% "flink-scala" % flinkVersion % "optional",
"org.apache.flink" %% "flink-streaming-scala" % flinkVersion % "optional"
)
}
libraryDependencies <++= scalaVersion(flinkDependencies)
答案 0 :(得分:2)
是的,这就是你必须这样做的方式。这是一个稍短的版本:
libraryDependencies ++= {
val suffix = if (scalaVersion.value.startsWith("2.11")) "_2.11" else ""
Seq(
"org.apache.flink" % s"flink-scala$suffix" % flinkV % "optional",
"org.apache.flink" % s"flink-streaming-scala$suffix" % flinkV % "optional"
)
}