【问题标题】:Grails ehcache plugin compile errorGrails ehcache插件编译错误
【发布时间】:2015-02-03 17:18:53
【问题描述】:
我正在尝试在我的 grails 应用程序中使用最新版本的 grails ehcache plugin (1.0.4),但是当我将插件作为依赖项添加到 BuildConfig.groovy 中时,我在启动时遇到编译错误:
| Error 编译错误:启动失败:
使用 javac 编译时出现编译错误。
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:202:错误:ReloadableCacheManager.ProxyEhcache 不是抽象的,不会覆盖抽象方法getSearchesPerSecond()在 Ehcache
受保护的类 ProxyEhcache 实现 Ehcache {
^
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:805:错误:ReloadableCacheManager.ProxyEhcache中的getStatistics()无法在Ehcache中实现getStatistics()
公共统计网关 getStatistics()
^
返回类型 StatisticsGateway 与 Statistics 不兼容
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:663:错误:找不到符号
返回 getUnderlyingEhcache(name).getSearchAttributes();
^
符号:方法 getSearchAttributes()
位置:接口Ehcache
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:660:错误:方法不覆盖或实现超类型的方法
@覆盖
^
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:758:错误:找不到符号
返回 getUnderlyingEhcache(name).calculateOnDiskSize();
^
符号:方法 calculateOnDiskSize()
位置:接口Ehcache
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:755:错误:方法没有覆盖或实现超类型的方法
@覆盖
^
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:765:错误:找不到符号
返回 getUnderlyingEhcache(name).getAll(arg0);
^
符号:方法 getAll(Collection)
位置:接口Ehcache
其中 CAP#1 是一个新的类型变量:
CAP#1 从捕获的 ?
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:761:错误:方法没有覆盖或实现超类型的方法
@覆盖
^
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:770:错误:找不到符号
return getUnderlyingEhcache(name).hasAbortedSizeOf();
^
符号:方法 hasAbortedSizeOf()
位置:接口Ehcache
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:768:错误:方法没有覆盖或实现超类型的方法
@覆盖
^
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:777:错误:找不到符号
getUnderlyingEhcache(name).putAll(arg0);
^
符号:方法 putAll(Collection)
位置:接口Ehcache
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:773:错误:方法没有覆盖或实现超类型的方法
@覆盖
^
/Users/rcgeorge23/Documents/workspace/grails-cache-ehcache/src/java/grails/plugin/cache/ehcache/GrailsEhCacheManagerFactoryBean.java:783:错误:接口Ehcache中的putIfAbsent方法不能应用于给定类型;
return getUnderlyingEhcache(name).putIfAbsent(arg0, arg1);
^
必需:元素
找到:元素,布尔值
还有其他人遇到过这个问题吗?我注意到 ehcache 插件仍在维护中,所以我猜它适用于当前版本的 grails,但我似乎无法让它为我工作。我还尝试从 github 中的 grails-ehcache 项目中克隆最新提交并将其作为本地插件项目引用,但我仍然遇到相同的编译错误。
我正在使用 Grails 2.3.7。
编辑 1:
我能够使用 ehcache 插件的 1.0.0 版本启动我的应用程序,但我想如果我使用这个版本可能会错过一些重要的增强功能...
编辑 2:
现在,我刚刚从 github 克隆了 1.0.0 版本,cherry 选择了 TTL 缺陷的修复程序 (https://jira.grails.org/browse/GPCACHEEHCACHE-6)。最好找出为什么我不能让 1.0.4 工作,但我现在有一个解决方法。
【问题讨论】:
-
试试grails clean-all 和grails clean(不会受伤)。
-
标签:
grails
ehcache