【发布时间】:2015-02-21 18:06:58
【问题描述】:
我看过几篇文章(例如GRAILS-11503 JIRA - scroll to the bottom)表明 Grails 使用自己的 Google Guice 版本——一个难以捉摸的“3.1.0”版本。
但是:
- 我没有看到 3.1.0 Guice JAR 发布到 Maven/Grails Central;和
- 当我执行
grails dependency-report时,我在输出中的任何地方都看不到“guice”
所以我问:Grails 真的有自己的 Guice 版本吗?如果是这样,它在哪里发布,为什么我运行 grails dependency-report 时看不到它?
我问是因为 GRAILS-11503 中发布的解决方案(将 exclude 子句添加到依赖项,因此排除了依赖项的 Guice 版本,以免与 Grails 的版本冲突)在我的 Grails 2.3.6 应用程序上运行。但现在我升级到 2.4.4,突然该修复程序不再起作用,并且在运行 grailsw publish-plugin 时出现了奇怪的 Guice 异常:
java.lang.IllegalAccessError: tried to access class com.google.inject.internal.UntargettedBindingProcessor$1 from class com.google.inject.internal.UntargettedBindingProcessor
at com.google.inject.internal.UntargettedBindingProcessor.visit(UntargettedBindingProcessor.java:35)
at com.google.inject.internal.UntargettedBindingProcessor.visit(UntargettedBindingProcessor.java:27)
at com.google.inject.internal.BindingImpl.acceptVisitor(BindingImpl.java:93)
at com.google.inject.internal.AbstractProcessor.process(AbstractProcessor.java:56)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:184)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
...huge stack trace omitted for brevity
at gant.Gant.executeTargets(Gant.groovy:591)
at gant.Gant.executeTargets(Gant.groovy:590)
at org.grails.wrapper.GrailsWrapper.main(GrailsWrapper.java:93)
【问题讨论】:
-
我给出的答案有帮助吗?
标签: grails guice grails-plugin