繁体   English   中英

如何声明Flink sbt跨版本依赖关系?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM