首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进口scala.reflect.runtime

进口scala.reflect.runtime
EN

Stack Overflow用户
提问于 2018-06-29 16:02:46
回答 2查看 276关注 0票数 0

为什么下面的代码在默认情况下在解释器中工作,但是在sbt项目中需要显式导入依赖项?

代码语言:javascript
复制
Welcome to Scala 2.12.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_144).
Type in expressions for evaluation. Or try :help.

scala> import scala.reflect.runtime._
import scala.reflect.runtime._

vs

sbt run抛出

代码语言:javascript
复制
object runtime is not a member of package reflect

不带

代码语言:javascript
复制
libraryDependencies += "org.scala-lang" % "scala-reflect" % "2.12.3"

在build.sbt中

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-05 13:00:57

类似的情况也会发生,例如

代码语言:javascript
复制
import scala.util.parsing.combinator._

它可以在REPL中导入,而无需任何辅助操作,但需要在sbt项目中添加依赖项。

原因是,当REPL启动时,它会将lib目录中的所有jars添加到类路径中(scala.bat在Windows中)

代码语言:javascript
复制
set _TOOL_CLASSPATH=
if "%_TOOL_CLASSPATH%"=="" (
  for %%f in ("!_SCALA_HOME!\lib\*.jar") do call :add_cpath "%%f"
  for /d %%f in ("!_SCALA_HOME!\lib\*") do call :add_cpath "%%f"
)

和下面的罐子出现在!_SCALA_HOME!\lib\

代码语言:javascript
复制
..
jline-2.14.4.jar
scala-compiler.jar
scala-library.jar
scala-parser-combinators_2.12-1.0.6.jar
scala-reflect.jar
scala-swing_2.12-2.0.0.jar
scala-xml_2.12-1.0.6.jar
scalap-2.12.3.jar
票数 1
EN

Stack Overflow用户

发布于 2018-06-29 16:29:46

因为REPL依赖于scala-compiler (它依赖于scala-reflect ),所以不将它们放入代码的类路径不会保存任何东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51105627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档