[英]How to declare Flink sbt cross version dependencies?
我想使用sbt交叉编译功能使用Scala 2.10和2.11编译项目。 问题在于该项目包含一些Flink依赖项。 但是Flink罐子不遵循标准的二进制格式(用_2.10
或_2.11
名称):scala 2.10罐子没有后缀,而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)
是的,这就是您必须这样做的方式。 稍微短一点的版本是这样的:
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"
)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.