Grails 2.4 Guice 错误

标签 grails guice grails-plugin

我看过几篇文章(例如 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,突然该修复不再起作用,并且在运行 grailswpublish-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或Maven,但我从官方主页下载了最新的Grails二进制文件(2.4.4):https://grails.org/download.html

该存档内有 /lib/org.sonatype.sisu/sisu-guice/jars/sisu-guice-3.1.0-{...}.jar

看起来您可以通过以下 deps 通过 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 2.4 Guice 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28588869/

相关文章:

java - 使用 Guice、枚举和静态工厂方法设计工厂框架

css - 使用资源插件 1.2.14 时如何从 CSS 文件链接到图像

grails - 自定义错误消息的Grails问题

gradle - Grails 4.0.0数据库迁移设置-使用IntelliJ找不到类CommonsLoggingLiquibaseLogger

grails - 在 logback 中注入(inject) grailsApplication

hibernate - Grails Hibernate批注

java - 指定子类的注入(inject)

java - 用 Hibernate/Guice/Wicket 替换 Hibernate/Spring/Spring MVC 堆栈

css - 如何在Grails渲染插件模板中使用bootstrap css

Grails 具有资源插件和 Assets 管道