SLF4J:Class 路径包含多个 SLF4J 绑定。多个 logback-classic jar
SLF4J: Class path contains multiple SLF4J bindings. multiple logback-classic jars
我正在构建 运行 Spring 使用 gradle 的网络应用程序。有多个绑定。阅读现有帖子,我发现了很多类似的问题。但是我有两个问题。 (1) 我找不到冲突依赖项。 (2) 我不太熟悉 gradle 语法。所以我尝试了很多方法。但还是一头雾水。欢迎任何帮助。谢谢。这是错误:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4j: Found bindings in [jar:file:/C:/myproject/gradle-2.3-all/gradle-2.3/lib/logback-classic-1.0.13.jar!/org/slf4j/impl/StatLoggerBinder.class]
SLF4j: Found bindings in [jar:file:/C:/myproject/myproject/build/temp/tomcatRunWar/work/Tomcat/localhost/myproject/WEB-INF/lib/logback-classic-1.1.2.jar!/org/slf4j/impl/StatLoggerBinder.class]
SLF4j: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
以下是我的依赖:
buildscript {
repositories {
maven { url "http://repo.spring.io/libs-release" }
mavenLocal()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.0.1.RELEASE")
classpath 'org.gradle.api.plugins:gradle-tomcat-plugin:1.2.4'
}}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'
apply plugin: 'war'
apply plugin: 'groovy'
apply plugin: 'tomcat'
eclipse {
jdt {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}}
jar {
baseName = 'myproject'
version = '0.1.0' }
repositories {
mavenCentral()
maven { url "http://repo.spring.io/libs-release" } }
dependencies {
compile('commons-fileupload:commons-fileupload:1.3.1')
compile("org.codehaus.jackson:jackson-mapper-asl:1.9.0")
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.data:spring-data-mongodb")
compile("org.springframework.security:spring-security-crypto:3.2.3.RELEASE")
compile("com.fasterxml.jackson.core:jackson-databind")
compile("joda-time:joda-time:2.2")
compile("org.apache.directory.studio:org.apache.commons.codec:1.6")
compile('com.amazonaws:aws-java-sdk:1.2.1')
testCompile("junit:junit")
runtime 'javax.servlet:jstl:1.2'
providedCompile group:"org.apache.tomcat", name:"tomcat-catalina", version:"7.0.47" }
dependencies {
def tomcatVersion = '7.0.47'
tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
"org.apache.tomcat.embed:tomcat-embed-logging-log4j:${tomcatVersion}"
tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
} }
tomcatRun { daemon = true
httpPort = 8080
outputFile = file('/logs/tomcat.log')
stopKey = 'ctl-d'
webDefaultXml = file('src/main/webapp/WEB-INF/web.xml') }
tomcatRunWar { outputFile = file('/logs/tomcat.log') }
tomcatStop { stopKey = 'ctl-d' }
首先在命令行上执行此操作:
gradle dependencies > foo.txt
完成后去喝咖啡。生成的文件将包含完整的依赖关系树。搜索回退。
那么当你修改构建文件时,据我所知(我在 gradle 也是相对较新的),你只需要排除模块或组,而不是两者.组基本上是冒号前的部分,模块是冒号后的部分。
再次查看您的错误详细信息,我认为问题可能出在这里:
"org.apache.tomcat.embed:tomcat-embed-logging-log4j:${tomcatVersion}"
所以我认为您可能应该将其分解成它自己的 line/dependency 并将排除项放在那里。
我正在构建 运行 Spring 使用 gradle 的网络应用程序。有多个绑定。阅读现有帖子,我发现了很多类似的问题。但是我有两个问题。 (1) 我找不到冲突依赖项。 (2) 我不太熟悉 gradle 语法。所以我尝试了很多方法。但还是一头雾水。欢迎任何帮助。谢谢。这是错误:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4j: Found bindings in [jar:file:/C:/myproject/gradle-2.3-all/gradle-2.3/lib/logback-classic-1.0.13.jar!/org/slf4j/impl/StatLoggerBinder.class]
SLF4j: Found bindings in [jar:file:/C:/myproject/myproject/build/temp/tomcatRunWar/work/Tomcat/localhost/myproject/WEB-INF/lib/logback-classic-1.1.2.jar!/org/slf4j/impl/StatLoggerBinder.class]
SLF4j: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
以下是我的依赖:
buildscript {
repositories {
maven { url "http://repo.spring.io/libs-release" }
mavenLocal()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.0.1.RELEASE")
classpath 'org.gradle.api.plugins:gradle-tomcat-plugin:1.2.4'
}}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'
apply plugin: 'war'
apply plugin: 'groovy'
apply plugin: 'tomcat'
eclipse {
jdt {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}}
jar {
baseName = 'myproject'
version = '0.1.0' }
repositories {
mavenCentral()
maven { url "http://repo.spring.io/libs-release" } }
dependencies {
compile('commons-fileupload:commons-fileupload:1.3.1')
compile("org.codehaus.jackson:jackson-mapper-asl:1.9.0")
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.data:spring-data-mongodb")
compile("org.springframework.security:spring-security-crypto:3.2.3.RELEASE")
compile("com.fasterxml.jackson.core:jackson-databind")
compile("joda-time:joda-time:2.2")
compile("org.apache.directory.studio:org.apache.commons.codec:1.6")
compile('com.amazonaws:aws-java-sdk:1.2.1')
testCompile("junit:junit")
runtime 'javax.servlet:jstl:1.2'
providedCompile group:"org.apache.tomcat", name:"tomcat-catalina", version:"7.0.47" }
dependencies {
def tomcatVersion = '7.0.47'
tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
"org.apache.tomcat.embed:tomcat-embed-logging-log4j:${tomcatVersion}"
tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
} }
tomcatRun { daemon = true
httpPort = 8080
outputFile = file('/logs/tomcat.log')
stopKey = 'ctl-d'
webDefaultXml = file('src/main/webapp/WEB-INF/web.xml') }
tomcatRunWar { outputFile = file('/logs/tomcat.log') }
tomcatStop { stopKey = 'ctl-d' }
首先在命令行上执行此操作:
gradle dependencies > foo.txt
完成后去喝咖啡。生成的文件将包含完整的依赖关系树。搜索回退。
那么当你修改构建文件时,据我所知(我在 gradle 也是相对较新的),你只需要排除模块或组,而不是两者.组基本上是冒号前的部分,模块是冒号后的部分。
再次查看您的错误详细信息,我认为问题可能出在这里:
"org.apache.tomcat.embed:tomcat-embed-logging-log4j:${tomcatVersion}"
所以我认为您可能应该将其分解成它自己的 line/dependency 并将排除项放在那里。