使用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>
答案 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>