如果我在compile "org.jasig.cas.client:cas-client-core:3.3.3"
中包含BuildConfig.groovy
,则会出现堆栈溢出,如下所示。如果我将compile
更改为runtime
,该错误就会消失,但是我在编译时和运行时都具有依赖性。
看起来像是与日志记录有关的某种循环引用,只是像这样获取堆栈转储是没有用的。我该如何解决?
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:253)
at org.apache.log4j.Category.<init>(Category.java:52)
at org.apache.log4j.Logger.<init>(Logger.java:35)
at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:59)
at org.apache.log4j.LogManager.getLogger(LogManager.java:42)
at org.slf4j.impl.GrailsSlf4jLoggerFactory.getLogger(GrailsSlf4jLoggerFactory.java:43)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:253)
at org.apache.log4j.Category.<init>(Category.java:52)
at org.apache.log4j.Logger.<init>(Logger.java:35)
at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:59)
at org.apache.log4j.LogManager.getLogger(LogManager.java:42)
at org.slf4j.impl.GrailsSlf4jLoggerFactory.getLogger(GrailsSlf4jLoggerFactory.java:43)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:253)
| Error Error executing script RefreshDependencies: null
最佳答案
您的依赖项链中可能有log4j-over-slf4j的多个版本。如果运行“grails依赖项报告运行时”,您将看到应用吸入的库列表。
使用transiveive = false将排除该库的所有依赖项,但是如果您的依赖项链中有多个slf4j版本,则可以尝试“排除“log4j-over-slf4j””作为更集中的排除项。例如。,
编译(“org.jasig.cas.client:cas-client-core:3.3.3”){
排除“log4j-over-slf4j”
}
关于grails - Grails-包括CAS客户端JAR依赖项会导致StackOverflowError,日志记录冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27807355/