【问题标题】:Grails Project Suddenly Missing DependenciesGrails 项目突然缺少依赖项
【发布时间】:2021-04-27 18:42:54
【问题描述】:

我将多个 grails 项目用于各种报告和 API 相关任务。昨天在尝试构建我的项目时,我开始遇到与缺少依赖项相关的各种错误。我没有进行任何代码更改来提示这些缺失的依赖项,其中一些来自在我的项目中使用多年的其他包,而从未抱怨过这些缺失的依赖项。以下是一些此类错误的示例:

C:\Users\Public\Grails3\fitment-app\grails-app\controllers\com\gammapowersports\FitmentProductController.groovy: 11: unable to resolve class org.apache.commons.io.FileUtils

还有一个:

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [grails.boot.config.GrailsApplicationPostProcessor]: Factory method 'grailsApplicationPostProcessor' threw exception; nested exception is org.grails.core.exceptions.GrailsRuntimeException: Failed to introspect class: class grails.plugin.springsecurity.rest.JwtService
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
... 23 common frames omitted
Caused by: org.grails.core.exceptions.GrailsRuntimeException: Failed to introspect class: class grails.plugin.springsecurity.rest.JwtService
at grails.core.ArtefactHandlerAdapter.isArtefact(ArtefactHandlerAdapter.java:129)
at grails.core.DefaultGrailsApplication.addOverridableArtefact(DefaultGrailsApplication.java:772)
at org.grails.plugins.AbstractGrailsPluginManager.registerProvidedArtefacts(AbstractGrailsPluginManager.java:310)
at grails.boot.config.GrailsApplicationPostProcessor.performGrailsInitializationSequence(GrailsApplicationPostProcessor.groovy:110)
at grails.boot.config.GrailsApplicationPostProcessor.initializeGrailsApplication(GrailsApplicationPostProcessor.groovy:93)
at grails.boot.config.GrailsApplicationPostProcessor.setApplicationContext(GrailsApplicationPostProcessor.groovy:225)
at grails.boot.config.GrailsApplicationPostProcessor.<init>(GrailsApplicationPostProcessor.groovy:77)
at grails.boot.config.GrailsAutoConfiguration.grailsApplicationPostProcessor(GrailsAutoConfiguration.groovy:69)
at com.gammapowersports.Application.grailsApplicationPostProcessor(Application.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
... 24 common frames omitted

我可以通过添加依赖项来解决这些错误,以专门满足依赖项,我已经这样做以使我的项目再次构建。

我的问题是为什么这些依赖关系突然开始失败?我想知道这是否与从 Bintray 作为 Grails 的主要插件提供者的迁移有关。有其他人遇到过这些问题吗?

【问题讨论】:

    标签: gradle grails dependencies build.gradle grails3


    【解决方案1】:

    最常见的问题是您需要刷新依赖项。运行这个命令:

    ./gradlew clean;./gradlew build --stacktrace  --refresh-dependencies
    

    这应该会清理您的缓存并刷新您的依赖项。

    作为记录,bintray 已表示他们将继续维护所有旧的 repos/archives,但他们不会接受任何新的。

    【讨论】:

    • 感谢您的回复,我最初尝试过,但无济于事。我可能应该在我原来的问题中提到这一点。
    • 如果您仍然遇到问题,可能是因为我看到的“spring-security-rest”依赖项。他们确实在内部移动了它(Grails,OCI)并从 Grails 插件中删除,所以如果你想在你的 repo 中引用旧的副本或其他东西,你将不得不引用它。我实际上下载了该库并将其作为我的插件的一部分包含在我的插件中,以备将来使用,因为它们不再提供。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    相关资源
    最近更新 更多