Я хотел бы скомпилировать проект с помощью Scala 2.10 и 2.11 с использованием функции перекрестной компиляции sbt. Проблема в том, что этот проект содержит некоторые зависимости Flink. Но флинг-банки не соответствуют стандартному двоичному формату (постфиксное имя с _2.10
или _2.11
): в банках scala 2.10 нет постфикса, а у 2.11 есть это.Как объявить зависимость перекрестных версий Flink sbt?
Я нашел рабочее решение. Но я не доволен этим, и мой вопрос: есть ли более простой и/или более элегантный способ решить эту проблему?
Мое текущее решение:
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 в ближайшем будущем. Но было бы интересно иметь хорошее решение для текущей проблемы. – gesundkrank