1

我正在使用 Griffon 并希望将 guava 库作为依赖项添加到我的项目中。但是,当我这样做时,即使不使用 1 类,我也会得到以下异常:

Compilation error: BUG! exception in phase 'canonicalization' in source unit
'/home/wdb/myproject/griffon-app/controllers/MyController.groovy' Prohibited
package name: java.util.concurrent

知道可能出了什么问题吗?这是我的 java 版本(在 Ubuntu 11.10 上):

wdb@wdb-laptop:~$ java -version
java version "1.6.0_27"
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) Server VM (build 20.2-b06, mixed mode)

我发现这个链接讨论了使用引导类路径解决类似问题,但这似乎有点激烈。

问候,

维姆

4

2 回答 2

4

我的猜测是我们的 java.util.concurrent.ExecutorService 的 bootclasspath 副本(由于 JDK5 和 JDK6 之间的不兼容更改而必需)出现在您的类路径中。我不太了解 Maven,但我认为,因为我们将依赖项标识为“已提供”,所以不应该发生这种情况

这不是一个真正的答案,但我希望它足以让你或其他人开始。

于 2011-10-22T15:17:44.283 回答
1

一定是格里芬不尊重“提供”的范围。我设法通过编辑使其工作BuilderConfig.groovy

compile( 'com.google.guava:guava:10.0.1' ) { 
    exclude 'guava-bootstrap' 
}
于 2011-10-24T06:11:42.427 回答