zoukankan      html  css  js  c++  java
  • 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上运行起来了。

  • 相关阅读:
    提高.NET编程水平的50个要点(转载)
    动态生成Menu
    C#实现二叉树外带中序遍历(转载)
    我的XML学习笔记<续>
    泛型的排序问题
    我的XML学习笔记
    动态存储过程分页
    排序算法汇总(转载收藏)
    中兴u880e刷机root教程(含刷第三方recover)
    如何清理ipod touch iPhone ipad的“其他”文件
  • 原文地址:https://www.cnblogs.com/keitsi/p/5318395.html
Copyright © 2011-2022 走看看