当前位置: 首页 > 知识库问答 >
问题:

Gradle intelliJ插件SLF4J:类路径包含多个SLF4J绑定

华振
2023-03-14

我正在为intelliJ IDEA开发一个插件,我正在使用一个外部库。当我跑步的时候,我有这个问题。

SLF4J:类路径包含多个SLF4J绑定。SLF4J:在[jar:file:/c:/users/molos/desktop/thesis-folder/thesis-project/build/idea-sandbox/plugins/thesis-project/lib/slf4j-log4j12-1.6.0.jar!/org/slf4j/impl/staticloggerbinder.class]中找到绑定;SLF4J:在

这是我的建筑。

plugins {
id 'java'
id 'maven-publish'
id 'org.jetbrains.intellij' version '0.4.10'
}

version '1.0-SNAPSHOT'

apply plugin: 'maven'

sourceCompatibility = 1.8

repositories {
   mavenCentral()
   maven {
      url = 'https://repo.maven.apache.org/maven2'
}


dependencies {
  // https://mvnrepository.com/artifact/com.github.mauricioaniche/ck
compile group: 'com.github.mauricioaniche', name: 'ck', version: '0.4.4'
// https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit
compile group: 'org.eclipse.jgit', name: 'org.eclipse.jgit', version: '2.2.0.201212191850-r'
// https://mvnrepository.com/artifact/org.apache.commons/commons-csv
compile group: 'org.apache.commons', name: 'commons-csv', version: '1.1'



}

// See https://github.com/JetBrains/gradle-intellij-plugin/
intellij {
version '2019.3.1'
}

我尝试了我找到的许多解决办法,但我都解决不了。

有人能帮帮我吗?

共有1个答案

丰辰沛
2023-03-14

我在最近的一个应用程序中遇到了同样的问题,该应用程序的版本为Gradle6.7和spring boot 2.3.4.版。我最终排除了IntelliJ插件的功能,以及其他一些功能。

plugins {
    id 'java'
    id 'org.jetbrains.intellij' version '0.5.1'
    id 'org.springframework.boot' version '2.3.4.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
}
...
configurations {
    // the ideaIC module is adding the slf4j-log4j12 module and StaticLoggerBinder.class
    implementation.exclude(group: 'com.jetbrains', module: 'ideaIC')
    
    // the groovy plugin was adding groovy to the runtime
    implementation.exclude(group: 'org.codehaus.groovy', module: 'groovy-all')

    // spring-boot-logging brought in logback and log4j-to-slf4j which I don't want
    //   since I am using org.springframework.boot:spring-boot-starter-log4j2
    compile.exclude(group: 'ch.qos.logback')
    compile.exclude(group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j')
}

这是一种蛮力,但它起作用了。可能Gradle文件中缺少一些设置,导致添加了这些不必要的模块。我当然不指望这些插件会给我的JAR添加这样的东西。

 类似资料: