eclipse版本为Scala IDE(scala-SDK-4.7.0-vfinal-2.12-win32.win32.x86_64)。
新建mvn project,模板为scala的。创建之后的默认情况是:
再看pom的定义:
可见是由于IDE默认的scala版本2.12与pom中的配置版本2.11不符导致的。
工程上右键->properties->Scala Compiler,选中use project settings,Scala Installation选Latest 2.11 bundle版本。
报错消失。然后又产生了个新报错
not found: type JUnitRunner specs.scala /0625mvn/src/test/scala/samples line 18 Scala Problem
此为测试程序,用不着,把他注释掉。
报错消失,新建工程上没有红叉了~
新建一个package叫spark.core,下面新建一个scala object。报错:
not found: type SparkConf WordCount.scala /0625mvn/src/main/scala/spark/core line 7 Scala Problem
not found: type SparkContext WordCount.scala /0625mvn/src/main/scala/spark/core line 11 Scala Problem
原因是pom里没有添加spark core的依赖。
加上
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.0</version>
</dependency>
报错又消失~
然后又产生了新报错:
添加依赖:
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml/classmate -->
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
<version>1.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson/jackson-datatype-guava -->
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-datatype-guava</artifactId>
<version>1.9.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.5</version>
</dependency>
添加如上依赖后,报错只剩下:
看了下classpath的配置为:.;%JAVA_HOME%\jdk1.8.0_171\lib;%JAVA_HOME%\jdk1.8.0_171\lib\tools.jar;
tools.jar是JDK自带的,pom中的其他jar隐形依赖tools.jar,而tools.jar并未在库中。
添加依赖:
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/jdk1.8.0_171/lib/tools.jar</systemPath>
</dependency>
问题解决。