scala:控制台比Scala自己的REPL更差?

时间:2014-06-13 12:01:52

标签: scala maven maven-plugin

使用maven-scala-plugin我可以使用所有依赖项运行Scala控制台:

mvn scala:console

但是,我获得的内容远比Scala自己的那个糟糕的REPL (在没有参数的情况下运行scala时得到的那个)。例如。它错过了自动完成历史箭头键只需打印代码(而不是移动光标)等。

我的设置中是否存在问题或只是配置错误?如果首先,scala:console的替代方法是什么(即具有所有依赖关系和编译代码的REPL)?


我的pom.xml中的插件配置:

<plugin>
    <groupId>org.scala-tools</groupId>
    <artifactId>maven-scala-plugin</artifactId>
    <version>2.15.0</version>
    <executions>
      <execution>
        <goals>
          <goal>compile</goal>
          <goal>testCompile</goal>
        </goals>
        <configuration>
          <args>
            <arg>-make:transitive</arg>
            <arg>-dependencyfile</arg>
            <arg>${project.build.directory}/.scala_dependencies</arg>
          </args>
        </configuration>
      </execution>
    </executions>
</plugin>

2 个答案:

答案 0 :(得分:9)

版本org.scala-tools:maven-scala-plugin:插件的2.x已被弃用/死亡(由于scala-tools.org的EOL,maven3约定,......)。

尝试

    <groupId>net.alchim31.maven</groupId>
    <artifactId>scala-maven-plugin</artifactId>
    <version>3.2.0</version>

(注意:我是两个插件的作者)。

答案 1 :(得分:3)

有趣的是,在SO上提问会让你从另一个方向思考并自己找到答案。事实证明我在REPL开始时错过了错误消息:

  

创建JLineReader失败:java.lang.NoClassDefFoundError:scala / tools / jline / console / completer / Completer   回到SimpleReader。

快速导致solution - 只需要将JLine添加到依赖列表:

<dependency>
  <groupId>org.scala-lang</groupId>
  <artifactId>jline</artifactId>
  <version>2.9.0-1</version>
</dependency>