【问题标题】:Grails upgrade 2.4.0 -> 2.5.4 cache plugin issueGrails 升级 2.4.0 -> 2.5.4 缓存插件问题
【发布时间】:2016-07-08 18:29:46
【问题描述】:

在将项目从 2.3.7 -> 2.4.0 升级后不久,我正在将项目从 grails 2.4.0 升级到 2.5.4,我收到此错误。

[groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
  [groovyc] Compile error during compilation with javac.
  [groovyc] /home/michal/Desktop/ikariera/ikariera/target/work/plugins/cache-1.1.7/src/java/grails/plugin/cache/GrailsAnnotationCacheOperationSource.java:220: error: no suitable method found for parseCacheAnnotations(AnnotatedElement)
  [groovyc]             Collection<CacheOperation> annOps = annotationParser.parseCacheAnnotations(ae);
  [groovyc]                                                                 ^
  [groovyc]     method CacheAnnotationParser.parseCacheAnnotations(Class<?>) is not applicable
  [groovyc]       (argument mismatch; AnnotatedElement cannot be converted to Class<?>)
  [groovyc]     method CacheAnnotationParser.parseCacheAnnotations(Method) is not applicable
  [groovyc]       (argument mismatch; AnnotatedElement cannot be converted to Method)
  [groovyc] Note: /home/michal/Desktop/ikariera/ikariera/target/work/plugins/scaffolding-2.1.0/src/java/org/codehaus/groovy/grails/scaffolding/AbstractGrailsTemplateGenerator.java uses or overrides a deprecated API.
  [groovyc] Note: Recompile with -Xlint:deprecation for details.
  [groovyc] 1 error
  [groovyc] 
  [groovyc] 
| Compiling 232 source files.
| Error Compilation error: startup failed:
Compile error during compilation with javac.
/home/michal/Desktop/ikariera/ikariera/target/work/plugins/cache-1.1.7/src/java/grails/plugin/cache/GrailsAnnotationCacheOperationSource.java:220: error: no suitable method found for parseCacheAnnotations(AnnotatedElement)
            Collection<CacheOperation> annOps = annotationParser.parseCacheAnnotations(ae);
                                                                ^
    method CacheAnnotationParser.parseCacheAnnotations(Class<?>) is not applicable
      (argument mismatch; AnnotatedElement cannot be converted to Class<?>)
    method CacheAnnotationParser.parseCacheAnnotations(Method) is not applicable
      (argument mismatch; AnnotatedElement cannot be converted to Method)

我尝试将 chache 插件从 1.1.3 升级到 1.1。{4,5,6,7,8} 但一切都给出了相同的错误。我很高兴有一个想法,问题可能出在哪里。

【问题讨论】:

  • 这让我很吃惊。一般来说,缓存 1.1.8 与 Grails 2.5.4 兼容。请在github.com/grails-plugins/grails-cache/issues 提出问题,提供一个示例应用程序的链接来演示该问题,我们可以解决该问题。感谢您的反馈。
  • 不清楚为什么会涉及到 Grails 2.4.0,但缓存插件的 1.1.6 是我们随 2.4.0 提供的版本。不确定是否与 1.1.7 不兼容。
  • 感谢您的帮助。 :) 我只是一名大学生,刚接触 grails 框架。我将把这个应用程序从 2.5.4 升级到 3.1.9,所以请继续关注我的 stackoverflow 频道。 :)

标签: grails upgrade grails-2.4 grails-2.5


【解决方案1】:

我认为将插件移至 1.1.8 并删除目标文件夹 + grails clean 可以解决问题。 现在我在我的一些域类上遇到了这种错误

| Warning The [$tt__showOut] action in[cz.ikariera.student.StudentAccountMessageController] accepts a parameterof type [org.springframework.transaction.TransactionStatus]. Interfacetypes and abstract class types are not supported as command objects. This parameter will be ignored.

以及一些基于资源插件和基于 gsp 的问题。

但是缓存插件没问题。

【讨论】:

  • 您提到的警告消息与缓存插件或原始问题无关。该警告可以安全地忽略,并且是 2.5.4 中的错误导致的,该错误已在 2.5.5 中修复。见github.com/grails/grails-core/issues/9770
【解决方案2】:

我遇到了类似的问题,对我来说,删除项目根文件夹中的 .slcache 文件夹很有帮助。

【讨论】:

    猜你喜欢
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多