zoukankan      html  css  js  c++  java
  • Idea创建Scala的Maven项目

    开始学习Scala,用Idea创建Maven项目的时候遇到一些问题,特此记录

    • Idea版本(2018.1.5)
    • Scala版本(2.11.0)
    • Java版本(1.8.0_151)

    创建Scala的Maven项目

    Idea新建项目如图,输入GroupId和ArtifactId之后点击“下一步”->配置Maven home目录(默认即可)->输入工程名“完成”,Idea自动构建项目:

    运行生成的App文件!

    运行报错

    生成的App函数内容如下:

    package com
    
    /**
     * Hello world!
     *
     */
    object App extends Application {
      println( "Hello World!" )
    }
    

    问题1:println 函数不能识别

    进入pom.xml文件,找到Scala版本代码:

      <properties>
        <scala.version>2.7.0</scala.version>
      </properties>
    

    可以看到Idea自动导入的Scala版本是2.7.0,而我自己使用的是2.11.0,修改成如下版本,问题解决:

      <properties>
        <scala.version>2.11.0</scala.version>
      </properties>
    

    不确定自己Scala版本,可以点击“File”->Project Structure, 查看下图:

    问题2:找不到Application

    运行报下面错误:

    Error:(7, 20) not found: type Application
        object App extends Application {
    

    查找到stackoverflow有同样的问题,是说 Scala2.9以后就弃用了Application,所以使用2.11版本要用App替代Application,用Main替代App,需要将App文件修改成下面代码:
    stackoverflow连接:https://stackoverflow.com/questions/26176509/why-does-2-11-1-fail-with-error-not-found-type-application

    package com
    
    /**
     * Hello world!
     *
     */
    object Main extends App {
      println( "Hello World!" )
    }
    

    继续运行,报下面版本错误

    问题3:Scala signature JUnit4 has wrong version

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

    解决办法:将maven自动生成的test下面的MySpec文件删除就好了

    再次运行,终于看到久违的Hello World!

  • 相关阅读:
    (转)正则表达式与Python(RE)模块
    (转)【面试】【MySQL常见问题总结】【03】
    (转)MySQL性能调优my.cnf详解
    (转)python logging模块
    (转)python collections模块详解
    mysql故障总结
    rocksdb 编译安装 日志
    c++11 gcc4.8.x安装
    Install ssdb-rocks on CentOS 6
    在Shell里面判断字符串是否为空
  • 原文地址:https://www.cnblogs.com/wangjianwei/p/9722234.html
Copyright © 2011-2022 走看看