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

sl4j版本在gradle中与Storm 1.0.1和elasticsearch 5.2冲突

宦瀚
2023-03-14

我们在gradle与Storm 1.0.1和elasticsearch 5.2中面临sl4j版本的冲突。

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.21'
    compile 'org.apache.logging.log4j:log4j-to-slf4j:2.6.2'
    compile 'ch.qos.logback:logback-classic:1.1.10'
    provided ('org.apache.storm:storm-core:1.0.1') {
        exclude(group: 'org.slf4j', module: 'slf4j-api')
    }
    compile 'org.elasticsearch:elasticsearch:5.2.0'
    compile 'org.elasticsearch.client:x-pack-transport:5.2.0'
}
configurations.all {
    resolutionStrategy {
        eachDependency { DependencyResolveDetails dependencyResolveDetails ->
            final requestedDependency = dependencyResolveDetails.requested
            if (requestedDependency.group == 'org.slf4j' && requestedDependency.name == 'slf4j-api') {
                requestedDependency.setVersion "1.7.7"
            }
         }
    }
}

但是当拓扑被提交时,我们得到错误:SLF4J:Class path包含多个SLF4J绑定。SLF4J:在[jar:file://users/gauthamr05/documents/apps/storm/apache-storm-1.0.1/lib/log4j-slf4j-impl-2.1.jar!/org/slf4j/impl/staticloggerbinder.class]中找到绑定SLF4J:在[jar:file://users/gauthamr05/documents/workspace/xyz_app/build/libs/fullindexing.jar!/org/slf4j/impl/staticloggerbindings.class]中找到绑定slf4j:实际绑定类型为[org.apache.logging.log4j.spi.loggerRegistry.getorCreateInnerMap(loggerRegistry.java:140)在org.apache.logging.log4j.spi.loggerRegistry.haslogger(loggerRegistry.java:154)在org.apache.logging.slf4j.slf4jloggerContext.getLogger(slf4jloggerContext.java:38)在jloggerFactory.newLogger(log4JloggerFactory.java:37)在org.apache.logging.slf4j.log4Jlog4JloggerFactory.newLogger(log4JloggerFactory.java:29)在org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)在org.apache.logging.slf4j.log4JloggerFactory.java:277)在

共有1个答案

韩鸿
2023-03-14

如异常所述,有两个JAR包含StaticloggerBinder.class

  • /users/gauthamr05/documents/apps/storm/apache-storm-1.0.1/lib/log4j-slf4j-impl-2.1.jar
  • /users/gauthamr05/documents/workspace/xyz_app/build/libs/fullindexing.jar

问题:xyz_app/build/libs/fullindexing.jar是您自己的项目吗?

如果它是您自己的jar,我在这里进行了一点猜测,但我猜测org/slf4j/impl/statibloggerbinder.java被打包在您的类路径上的一个jar中。wierd默认javac,它将编译类路径上JAR中的任何.java文件。这可以通过以下方式关闭

compileJava.options.compilerArgs << '-implicit:none'

看这里和这里

 类似资料:
  • 问题内容: 作为测试项目,我使用wsdl和jax- ws创建了一个非常简单的WebService。如果客户端作为GlassFish中的Web应用程序部署,则客户端运行得很好,但是如果我直接在Eclipse中启动相同的(WebService-)代码,则会收到以下错误: 经过研究,我发现它与某些版本的库文件有一定关系。所以现在我的问题是,如何才能“修复” Eclipse Java执行以正确运行我的We

  • 我正在开发一个应用程序和一个库(Android模块)。它们在不交互时没有问题:在导入库后,Android Studio搞乱了设置,我无法恢复。 和其他98个类似的:都与主题问题有关。 还有其他消息引用值、,例如:

  • 我安装了多个JDK。 在我的build.gradle中,我设置,以确保使用正确的sourceCompatibility。这很好用。 它编译并运行时没有任何警告(),但不会更改任何内容,也不会出现在中。

  • 我有与Spring data neo4j一起工作的Spring服务,我决定将Spring data neo4j从2.2更新到当前版本-3.1.4。释放。所以第一次我更新了neo4j,项目失败了,我更新了Spring版本,不同的版本有不同的例外。这个服务包括在我的前端,我叫它是从网络。所以我不知道什么是最佳配置???配置与maven。这里有pom.xml Spring配置文件 所以每次加载db例外,

  • 我创建了一个android库模块,并将其托管在我的Github上。但是,该库与Android Studio项目的图标和版本冲突。当附加到我的Android项目gradle时,会显示以下错误: 清单合并失败:属性元数据#android.support.VERSION@value值=(25.3.1)来自[com.android.support: cardview v7:25.3.1]Androidan