Scala Error: error while loading Suite, Scala signature Suite has wrong version expected: 5.0 found: 4.1 in Suite.class


准備給scala項目引入單元測試

<dependency>
      <groupId>org.scalatest</groupId>
      <artifactId>scalatest_2.10</artifactId>
      <version>2.2.6</version>
</dependency>

 

Scala版本: 2.10.4

 

編譯的時候遇到了下面的錯誤:

Error:scalac: error while loading Suite, Scala signature Suite has wrong version  expected: 5.0  found: 4.1 in Suite.class

 

一開始猜錯是scalatest的版本不對,換了幾個版本都還是遇到一樣的錯誤,認真閱讀錯誤信息后恍然大悟!

應該是編譯環境的版本不對,我原來安裝的scala版本是2.10.4,升級到1.11.7后沒有這個錯誤了,但卻出現了另外一個錯誤:

can't expand macros compiled by previous versions of Scala

意思應該是說不能展開以前版本scala編譯的宏

 

把相應的scalatest編譯的版本升級一下:scalatest_2.10 -> scalatest_2.11

 

最終的配置:

<dependency>
      <groupId>org.scalatest</groupId>
      <artifactId>scalatest_2.11</artifactId>
      <version>2.2.6</version>
      <scope>test</scope>
</dependency>
Scala版本: 2.11.7

 

用2.11.7版本的scala編譯沒有問題了,但是在提交到spark運行的過程中發現有錯誤,我的spark用的是官方的基於scala2.10.4編譯的2.5.1。

java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less$colon$less;

 

如果想要要用2.11.7版本的scala來編譯你的spark app的話

在服務器上就必須自己用對應版本scala重新編譯spark!!!

為了偷懶繼續折騰~

把scala SDK降級到2.10.6,並把scalatest降級到相應的版本

 

最最終的配置:

<dependency>
      <groupId>org.scalatest</groupId>
      <artifactId>scalatest_2.10</artifactId>
      <version>2.2.6</version>
      <scope>test</scope>
</dependency>

 

Scala版本: 2.10.6

 

最后,終於可以正常編譯和運行scalatest了,並且編譯的二進制可以在spark上運行起來了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM