如何获得更多的sbt编译错误调试? “未找到MethodHandle”

时间:2014-09-03 22:17:03

标签: scala sbt

在Java 6下尝试sbt compile我的项目的一个分支ENSIME(如果您有兴趣进行实验)会给出一个奇怪的编译器警告:

[info] Compiling 48 Scala sources to /home/fommil/Projects/ensime-server/target/scala-2.11/classes...
[error] Class java.lang.invoke.MethodHandle not found - continuing with a stub.
[error] two errors found
[error] (compile:compile) Compilation failed
[error] Total time: 18 s, completed 03-Sep-2014 22:57:44

它适用于Java 7。

调用last只会显示编译的类路径(这相当于设置--debug级别)。

我已从项目中删除了所有插件,问题仍然显示。

如果我删除所有代码 - 只留下构建系统和依赖项 - 使用一些存根scala入口点,那么就没有问题。

但是,我无法将我的源代码文件一分为二,因为它不会编译。

编译代码时,MethodHandle的grep(包括二进制文件)不会给出任何命中(尽管测试资源中有一个jdk8文件,但它不相关,因为如果删除它就会出现问题)

只有一个(大)补丁引起了问题(之前的提交编译好了)。

  1. 如何在sbt中进一步调试?它不想再提供任何信息
  2. 这是一个已知的问题,或者任何人都可以做出明智的猜测是什么?

1 个答案:

答案 0 :(得分:0)

事实证明,这是因为拉入Lucene,这需要Java 7。

来自sbt的一些史诗消息失败了:似乎没有办法让它输出任何合理的信息。