Scala 的 Eclipse IDE:类路径中缺少符号

Eclipse IDE for Scala : symbol is missing from classpath

当我在 Eclipse Oxygen (ubuntu 16.04) 中构建我的 Scala-Spark 项目时,returns 我在 "Problems" 控制台中遇到了这个问题:

 Symbol 'term <none>.typesafe.scalalogging' is missing from the classpath. This symbol is required by 'trait org.graphframes.Logging'. Make sure that term scalalogging is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. A full rebuild may help if 'Logging.class' was compiled against an incompatible version of <none>.typesafe. Example.scala   /FakeYelp/src/main/scala/bigdata/FakeYelp   line 18 Scala Problem

Symbol 'term com.typesafe' is missing from the classpath. This symbol is required by 'trait org.graphframes.Logging'. Make sure that term typesafe is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. A full rebuild may help if 'Logging.class' was compiled against an incompatible version of com.  Example.scala   /FakeYelp/src/main/scala/bigdata/FakeYelp   line 18 Scala Problem

Symbol 'type <none>.slf4j.LazyLogging' is missing from the classpath. This symbol is required by 'trait org.graphframes.Logging'. Make sure that type LazyLogging is in your classpath and check for conflicting dependencies with `-Ylog-classpath`. A full rebuild may help if 'Logging.class' was compiled against an incompatible version of <none>.slf4j.  Example.scala   /FakeYelp/src/main/scala/bigdata/FakeYelp   line 18 Scala Problem

出现错误:

val gFrame = GraphFrame(vertexDF, edgeDF)

如何解决这个问题?

更新 这是我的 pom.xml maven 配置:

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>


<!-- https://mvnrepository.com/artifact/graphframes/graphframes -->
<dependency>
    <groupId>graphframes</groupId>
    <artifactId>graphframes</artifactId>
    <version>0.5.0-spark2.1-s_2.11</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10 -->
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.10</artifactId>
    <version>2.1.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.11 -->
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.11</artifactId>
    <version>2.1.1</version>
    <scope>provided</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-graphx_2.11 -->
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-graphx_2.11</artifactId>
    <version>2.1.1</version>
    <scope>provided</scope>
</dependency>
</dependencies>

您不能同时使用 ..._2.10..._2.11。 Maven 不知道这些后缀是否有意义,因此无法提供有用的错误。添加一个 属性 并使用 _${scala.binary} 一起切换依赖项(并确保它对应于您正在使用的 Scala 版本)。

可能还有其他问题,但这需要先解决。