我已经创建了一个libs
文件夹并将其放置scalascriptengine-1.3.9-2.11.0.jar
在其中。之后,我在上单击鼠标右键,.jar
然后选择Add Library
。
然后,我创建了Test.scala
:
import java.io.File
import com.googlecode.scalascriptengine.ScalaScriptEngine
object Test {
def main(args: Array[String]): Unit = {
val sourceDir = new File("examples/folder")
val sse = ScalaScriptEngine.onChangeRefresh(sourceDir)
}
}
它已正确识别ScalaScriptEngine
,或者至少未给出任何警告或错误。但是它没有编译。
根据库页面,我编辑了build.sbt
:
name := "ScalaScriptEngineTest"
version := "1.0"
libraryDependencies += "com.googlecode.scalascriptengine" %% "scalascriptengine" % "1.3.10"
libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.11.1"
但是刷新后,我得到了:http : //pastebin.com/GdirttUJ
我想念什么?我正在学习Scala,这是我第一次尝试向IntelliJ Idea添加库...
简短答案:
如下更改两个依赖项build.sbt
:
libraryDependencies +=
"com.googlecode.scalascriptengine" % "scalascriptengine" % "1.3.9-2.10.3"
libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.10.4"
请注意,我不仅更改了版本-我还用一个%替换了您的%%。
这将导致您使用稍旧的ScalaScriptEngine版本,但我不知道这是否会对您造成任何问题。
如果您使用的是sbt构建依赖项,则无需在任何地方手动放置jar。
解释:
从您的日志中,我看到sbt正在寻找Scala 2.10的ScalaScriptEngine。实际上,很显然,您正在运行Scala 2.10.4,即使您的sbt文件表达了对2.11编译器的依赖,这实际上与使用ScalaScriptEngine的说明一致。
在日志的第23行,您可以准确看到它的位置。如果将浏览器指向该路径的一部分,则会看到Scala 2.11有一个版本,另一个目录scalascriptengine没有版本限定符。如果您深入研究后者,就会看到它们保留了所有旧版本的位置。没有为Scala 2.10编译的ScalaScriptEngine 1.3.10(您所要求的),因此您的选择似乎是升级到Scala 2.11(如果您想使用IntelliJ Idea的紧密集成,我认为当前不起作用) sbt),也可以使用ScalaScriptEngine 1.3.9。
您的Scala编译器依赖项基本上存在相同的问题-它需要使用的是Scala版本。
我已经用Scala 2.10.4确认了上述解决方案。我正在快速而轻松地玩它,因为没有针对2.10.4的预编译版本,并且我赌了2.10.3的构建可能会起作用。
备择方案:
可能有一种更清洁的方法来解决此问题,但是存储库的组织方式使我感到怀疑。
您可以使用自己选择的编译器来构建自己选择的版本,或者说服ScalaScriptEngine社区为您完成该版本并将其放入The Central Repository,但是我猜想1.3.10不会使用低于Scala的任何东西来构建。 2.11。
最后,如果您确实想手动下载jar,则可能需要阅读sbt文档的“非托管依赖项”部分。实际上,如果您要使用sbt,则只需阅读几遍即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句