【发布时间】:2016-01-15 19:36:52
【问题描述】:
我想用 Scala 2.10 和 2.11 使用 sbt 交叉编译功能编译一个项目。问题是这个项目包含一些 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)
【问题讨论】:
-
目前 Flink 默认使用 Scala 2.10 构建,并且没有正确暴露版本号。计划在下一个版本中解决此问题。
-
@matthias-j-sax 这是个好消息!谢谢。这将使这个问题在不久的将来对 Flink 来说已经过时了。但是对于当前的问题有一个好的解决方案仍然很有趣。
标签: scala sbt apache-flink