首页 文章

Flink与Scala IDE和SBT

提问于
浏览
1

我正在研究我的第一个Apache Flink wordcount示例 . 我的设置是Scala IDE(Eclipse)4.3.0,Scala 2.10.4,SBT版本0.13.8 .

对于调用env.fromElements,IDE抛出错误“无法扩展由先前版本的Scala编译的宏”

val env = ExecutionEnvironment.getExecutionEnvironment
val text = env.fromElements("first line", "second line")

我能够使用SBT编译和生成程序集jar . 我甚至可以在IDE中运行/调试程序 . 它只是IDE中的错误很烦人,它会阻止像自动完成等IDE功能 . 我有一些需要调整的设置 . 无法弄清楚哪一个 . 任何提示?

我的build.sbt

import AssemblyKeys._

name := "Flink Test"
version := "0.1.0"
organization := "com.NNN"
scalaVersion := "2.10.4"

javacOptions ++= Seq("-source", "1.7", "-target", "1.7")

libraryDependencies ++= Seq(
  "org.apache.flink" % "flink-scala" % "0.10.1" % "provided",
  "org.apache.flink" % "flink-clients" % "0.10.1" % "provided"
)

resolvers ++= Seq(
  "Akka"                    at "http://akka.io/repository/",
  "Sonatype"                at "https://oss.sonatype.org/"
)

assemblySettings

jarName in assembly := "flink-test.jar"

fork in run := true

assemblyOption in assembly :=  (assemblyOption in assembly).value.copy(includeScala = false)

1 回答

  • 1

    UPDATE

    来自引用的链接

    请注意,这意味着在兼容性2.10模式下,目前无法扩展白盒宏 . 实际上,宏已经知道2.10和2.11之间最近的重要发展,这使得两者之间的类型检查兼容性非常困难 . 如果您有一个使用2.10 whitebox宏的重要项目,您可能需要查看Scala IDE的2.10种风格 .

    由于白盒宏在2.11和2.10之间存在一些不兼容的改进,因此IDE无法在兼容模式下为您扩展宏 . 这可能仍然是这种模式的长期限制 . 这就是为什么-Ymacro-expand:none设置与-Xsource:2.10设置一起工作的原因 .

    我想你将不得不使用旧版本的scala IDE或升级到scala 2.11 . :(


    似乎Scala IDE(eclipse)正在使用更大的版本(2.11)来编译您的项目 . 尝试更改项目的编译器 .

    在Scala IDE中,转到

    Project > Propertiers > Scala Compiler

    如果需要,请选中使用项目设置

    在Scala Installation中,选择2.10并单击 Ok .

    也许你需要在那之后清理并完全重建你的项目 .

    更多信息:http://scala-ide.org/blog/scala-installations.html http://scala-ide.org/blog/Xsource-compatibility.html

相关问题