Scala REPL 无法导入包
我正在尝试在 Scala REPL 中导入 com.lambdaworks.crypto.SCryptUtil
( from crypto )。我正在从包含 com/lambdaworks/crypto 的 Java 目录运行 REPL。
REPL 无法找到 com.lambdaworks.crypto.SCryptUtil
,但它可以自动完成直到 com.lambdaworks.crypto
但之后找不到任何内容.
当我在我的项目中包含包后在 IntelliJ IDEA 中使用 REPL 时,我能够找到 SCryptUtil
类。
我是否遗漏了一些导入所需的类路径参数?
请您参考如下方法:
REPL 不会为您编译 Java 代码——它只是自动完成那么远,因为它知道目录结构,但是一旦它到达 crypto
目录,它就找不到任何类文件。
您可以通过向上移动一个目录并打开一个新的 REPL 来更明显地看到这一点——您将能够自动完成 import java.com.lambdaworks.crypto
,尽管这显然不是一个真实的包层次结构。
在这种情况下,您可以移动到项目根目录,运行mvn compile
来编译 Java 代码,然后像这样启动 REPL(仍然在项目根目录中):
scala -classpath target/classes
现在您可以导入 com.lambdaworks.crypto.SCryptUtil
。
这仅适用于项目没有任何运行时依赖项,但在其他情况下,您可能需要将其他内容添加到类路径,以构建具有内置依赖项的 JAR(例如使用 Maven Assembly plugin ), 或者使用 Maven 的 mvn scala:console
目标 Scala plugin .
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。