使用gradle将org.apache.kafka添加到依赖项

gtlvzcf8  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(625)

我开始了一个gradle项目 gradle init --type java-application 使用kotlin作为dsl的构建脚本,我只想添加 org.apache.kafka 图书馆

dependencies {
    // This dependency is used by the application.
    implementation("com.google.guava:guava:28.0-jre")

    implementation("org.apache.kafka:kafka_2.10:0.8.0")

    // Use JUnit test framework
    testImplementation("junit:junit:4.12")
}

但是 gradle build 返回此:


* What went wrong:

Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not find jmxtools.jar (com.sun.jdmk:jmxtools:1.2.1).
     Searched in the following locations:
         https://jcenter.bintray.com/com/sun/jdmk/jmxtools/1.2.1/jmxtools-1.2.1.jar
   > Could not find jmxri.jar (com.sun.jmx:jmxri:1.2.1).
     Searched in the following locations:
         https://jcenter.bintray.com/com/sun/jmx/jmxri/1.2.1/jmxri-1.2.1.jar

这是怎么回事?与jcenter冲突?

5cg8jx4n

5cg8jx4n1#

正如在评论中已经提到的,升级Kafka版本将解决这个问题(问题转到@cricket\u007)。
这个问题的根本原因实际上不是kafka本身,而是版本1.2.15中的传递依赖log4j。这个log4j版本需要jmxtools和jmxri。由于一些许可问题,这些工件在maven central和jcenter上不可用。好消息是:你很可能根本不需要它。您只需重写log4j依赖项即可使用1.2.16(或更高版本)或排除jmxtools和jmxri。
你也可以在这篇博客文章中找到更多的见解:http://unitstep.net/blog/2009/05/18/resolving-log4j-1215-dependency-problems-in-maven-using-exclusions/
所以有三种方法可以解决这个问题:
使用最新的Kafka版本或
使用log4j版本>1.2.15或
排除jmxtools和jmxri
希望这能帮助我们把事情弄清楚

相关问题