编译groovy traits时出现奇怪的编译错误

时间:2016-01-09 20:05:38

标签: groovy traits

我常常遇到在groovy中使用traits时随机出现的奇怪编译问题。他们有时会通过清除缓存离开,或者通过添加空注释人为地强迫这些特征的用户重新编译,但这里的错误,我无法动摇,这是我的特点:

trait SOAPClientErrorLogger {
    def withLogging(Closure soapCall) {
        try {
            soapCall()
        } catch (SOAPClientException e) {
            log.error("Failed to invoke SOAP endpoint:  ${e.request.url} \ndata:${new String(e.request.data)} \nResponse:${e.response?.statusCode}:${e.response?.contentAsString}")
            throw e
        }
    }
}

导致以下错误编译(在IDEA和独立运行的gradle中): Error:Groovyc: Method '$_gc_computeOldVariables' is protected but should be public in trait 'com…SOAPClientErrorLogger'.

为我项目中的每个特征打印同样的错误 他们之前编好了。

任何人都知道我该怎么办?或者解释为什么在一个时髦的项目中使用特征是如此微妙?

谢谢!

更新

当我在功能java库中包含groovy包装器库时,似乎会出现这些错误:

'com.github.mperry:functionalgroovy-主:0.8'

0 个答案:

没有答案