为什么下面的代码在默认情况下在解释器中工作,但是在sbt项目中需要显式导入依赖项?
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抛出
object runtime is not a member of package reflect不带
libraryDependencies += "org.scala-lang" % "scala-reflect" % "2.12.3"在build.sbt中
发布于 2018-07-05 13:00:57
类似的情况也会发生,例如
import scala.util.parsing.combinator._它可以在REPL中导入,而无需任何辅助操作,但需要在sbt项目中添加依赖项。
原因是,当REPL启动时,它会将lib目录中的所有jars添加到类路径中(scala.bat在Windows中)
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\
..
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发布于 2018-06-29 16:29:46
因为REPL依赖于scala-compiler (它依赖于scala-reflect ),所以不将它们放入代码的类路径不会保存任何东西。
https://stackoverflow.com/questions/51105627
复制相似问题