为什么IntelliJ IDEA会抛出编译错误?

时间:2014-06-29 19:14:23

标签: scala intellij-idea apache-spark

编译Spark会产生以下编译错误:

enter image description here

要解决此问题,我修改Utils.classIsLoadable方法只返回true

def classIsLoadable(clazz: String): Boolean = {
    // Try { Class.forName(clazz, false, getContextOrSparkClassLoader) }.isSuccess
    true
}

我意识到这不是一个好的修复,但到目前为止,Spark似乎从源代码正确运行。之前是否遇到过此编译错误,是否有修复?现在返回true是否足够,我不确定修改此返回值可能会产生什么影响?

1 个答案:

答案 0 :(得分:3)

我建议使用Maven或SBT从命令行编译Spark,而不是尝试使用IDE的编译器。许多核心Spark开发人员使用IntelliJ编辑Spark的源代码,但仍然使用命令行编译器,主要是因为很难让项目在IDE中正确构建。即使您使用外部编译器,您仍然可以从IntelliJ的语法突出显示,类型检查等中受益。

以下是Spark开发人员邮件列表中的相关讨论:http://apache-spark-developers-list.1001551.n3.nabble.com/IntelliJ-IDEA-cannot-compile-TreeNode-scala-td7090.html

请注意,Spark 用户应该能够使用IntelliJ来编译依赖于Spark的应用程序;此问题仅影响想要构建Spark本身的开发人员。

如果您有兴趣修复构建以使用IntelliJ,我建议您在Spark issue tracker上打开一张票。