cid*_*eas 5 macros scala intellij-idea
我有一个sbt项目,我运行"gen-idea"设置与Intellij 12.4一起工作.在一个项目中是我的主要代码,另一个项目有我的宏代码.按照http://docs.scala-lang.org/overviews/macros/overview.html尝试通过测试文件调试我的宏时,但抛出:
error: scala.reflect.internal.MissingRequirementError: object scala.runtime in compiler mirror not found.
at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16)
at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:48)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:40)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:61)
at scala.reflect.internal.Mirrors$RootsBase.getPackage(Mirrors.scala:172)
at scala.reflect.internal.Mirrors$RootsBase.getRequiredPackage(Mirrors.scala:175)
at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackage$lzycompute(Definitions.scala:181)
at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackage(Definitions.scala:181)
at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackageClass$lzycompute(Definitions.scala:182)
at scala.reflect.internal.Definitions$DefinitionsClass.RuntimePackageClass(Definitions.scala:182)
at scala.reflect.internal.Definitions$DefinitionsClass.AnnotationDefaultAttr$lzycompute(Definitions.scala:1015)
at scala.reflect.internal.Definitions$DefinitionsClass.AnnotationDefaultAttr(Definitions.scala:1014)
at scala.reflect.internal.Definitions$DefinitionsClass.syntheticCoreClasses$lzycompute(Definitions.scala:1144)
at scala.reflect.internal.Definitions$DefinitionsClass.syntheticCoreClasses(Definitions.scala:1143)
at scala.reflect.internal.Definitions$DefinitionsClass.symbolsNotPresentInBytecode$lzycompute(Definitions.scala:1187)
at scala.reflect.internal.Definitions$DefinitionsClass.symbolsNotPresentInBytecode(Definitions.scala:1187)
at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1252)
at scala.tools.nsc.Global$Run.<init>(Global.scala:1290)
at scala.tools.nsc.Driver.doCompile(Driver.scala:32)
at scala.tools.nsc.Main$.doCompile(Main.scala:79)
at scala.tools.nsc.Driver.process(Driver.scala:54)
at scala.tools.nsc.Driver.main(Driver.scala:67)
at scala.tools.nsc.Main.main(Main.scala)
Run Code Online (Sandbox Code Playgroud)
我已经检查过以确保在我的类路径中包含来自SCALA_HOME/lib /的所有jar并且它们都是.顺便说一句,这是Scala v2.10.2
我只想注意未来的读者,也可以在调试模式下启动你的sbt,然后远程连接想法调试器.
sbt -jvm-debug 50055005)在idea中运行remote-debug配置.这将把它连接到你正在运行的sbt.然后你可以在宏代码中设置断点,当compile在sbt中运行时,idea应该在断点处停止.
注意:要compile在成功编译后重新运行,您需要clean或更改一些代码
正如我们在#scala 中发现的那样,文档缺少这样一个事实:需要-Dscala.usejavacp=true向调用 scalac 的 JVM 命令提供参数。之后一切正常,我更新了文档:http://docs.scala-lang.org/overviews/macros/overview.html#debugging_macros。
| 归档时间: |
|
| 查看次数: |
2208 次 |
| 最近记录: |