Grails 2.4 Guice 错误
Grails 2.4 Guice Bug
我看过几篇文章(例如 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 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 或 Maven,但我从官方主页下载了最新的 Grails 二进制文件 (2.4.4):https://grails.org/download.html
在该存档中有 /lib/org.sonatype.sisu/sisu-guice/jars/sisu-guice-3.1.0-{...}.jar
看来您可以通过以下部门通过 Maven 链接到达那里:
http://mvnrepository.com/artifact/org.grails/grails-aether/2.4.4
http://mvnrepository.com/artifact/org.eclipse.aether/aether-impl/1.0.0.v20140518
http://mvnrepository.com/artifact/org.sonatype.sisu/sisu-guice
我看过几篇文章(例如 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 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 或 Maven,但我从官方主页下载了最新的 Grails 二进制文件 (2.4.4):https://grails.org/download.html
在该存档中有 /lib/org.sonatype.sisu/sisu-guice/jars/sisu-guice-3.1.0-{...}.jar
看来您可以通过以下部门通过 Maven 链接到达那里:
http://mvnrepository.com/artifact/org.grails/grails-aether/2.4.4
http://mvnrepository.com/artifact/org.eclipse.aether/aether-impl/1.0.0.v20140518
http://mvnrepository.com/artifact/org.sonatype.sisu/sisu-guice