Grails 应用程序中的 Log4J 问题,它依赖于 comons-logging
Posted
技术标签:
【中文标题】Grails 应用程序中的 Log4J 问题,它依赖于 comons-logging【英文标题】:Log4J Issue in Grails app which has a dependency on comons-logging 【发布时间】:2012-03-06 11:50:56 【问题描述】:我正在向我的 Grails 项目添加一个依赖项,它引入了 commons-logging 和 log4j 作为传递依赖项。当我运行我的应用程序时,我得到一个错误
Error Error executing script RunApp: Could not initialize class
org.apache.log4j.LogManager (NOTE: Stack trace has been filtered. Use --verbose to see
entiretrace.) java.lang.NoClassDefFoundError: Could not initialize class
org.apache.log4j.LogManager
我尝试通过排除 commons-logging 来删除 commons-logging 依赖项 this link。但它从来没有帮助。我看到 commons-logging 不是我添加的依赖项的直接依赖项。所以如果这样做
runtime ('com.company.i18n:i18n:1.3.4')
excludes 'commons-logging'
它是否排除了我的依赖项中的所有公共日志依赖项?或者只有直接的。我该如何解决这个问题?
【问题讨论】:
【参考方案1】:我尝试从所有依赖项中排除“log4j”,但没有任何效果。最后我解决了这个问题,避免了所有的传递依赖,然后添加了必要的东西。
//add necessary dependencies.
runtime ('com.company.i18n:i18n:1.3.4')
transitive = false
【讨论】:
感谢这也为我解决了grails和xmlapis之间的冲突!这让我发疯,直到我看到这终于奏效了!将此添加到 build.groovy --> runtime ('xml-apis:xml-apis:1.3.04') transitive = false以上是关于Grails 应用程序中的 Log4J 问题,它依赖于 comons-logging的主要内容,如果未能解决你的问题,请参考以下文章
Grails 2.3.8 中两个位置的 log4j 日志记录配置