Grails slf4j NoSuchMethodError

时间:2013-09-20 04:25:23

标签: grails slf4j

尝试编译grails 1.3.7 app并获得以下依赖项错误。有什么帮助吗?

> Error executing script RunApp:
> org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
> java.lang.NoSuchMethodError:
> org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
>   at
> org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:133)
>   at
> org.codehaus.groovy.grails.plugins.CorePluginFinder.loadCorePluginsFromResources(CorePluginFinder.java:93)
>   at
> org.codehaus.groovy.grails.plugins.CorePluginFinder.getPluginClasses(CorePluginFinder.java:54)
>   at
> org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.findCorePlugins(DefaultGrailsPluginManager.java:363)
>   at
> org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.attemptLoadPlugins(DefaultGrailsPluginManager.java:326)
>   at
> org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.loadPlugins(DefaultGrailsPluginManager.java:282)
>   at
> org.codehaus.groovy.grails.plugins.GrailsPluginManager$loadPlugins.call(Unknown
> Source)   at
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
>   at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
>   at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)

更新:目前我可以grails clean并手动删除插件;第一个构建工作,之后所有构建都失败并出现上述错误。

导致问题的插件是quartz-1.0-RC1和neo4j-1.0.0.M2。以前的开发人员将这个插件添加到depedencies.groovy中

Neo4j - 添加了以下

 runtime("org.grails:grails-datastore-gorm:$datastoreVersion","org.grails:grails-         datastore-core:$datastoreVersion") {
    excludes "jcl-over-slf4j", "slf4j-api"
 }

Quartz - 添加了slf4j-api

 excludes 'ehcache', 'xml-apis', 'commons-logging', 'slf4j-api'

BuildConfig.Groovy

我尝试将此添加到我的BuildConfig.groovy中,但它不起作用:

插件{

    compile(":lesscss:1.0.0"){
           excludes "jcl-over-slf4j", "slf4j-api"
    }
    compile(":neo4j:1.0.0.M2"){
           excludes 'ehcache', 'xml-apis', 'commons-logging', 'slf4j-api'
    }

1 个答案:

答案 0 :(得分:0)

此主题可能与您的问题有关:http://grails.1312388.n4.nabble.com/LocationAwareLogger-log-No-such-method-error-td3254387.html

我有同样的问题,我最终删除了错误的传递依赖,如上面的链接所示。我还必须强行删除一个slf4j jar文件,该文件在生成的战争中以某种方式泄露,在部署阶段导致同样的错误。