获得;无法捕获任务';的输入文件的快照:编译ejava'&引用;

获得;无法捕获任务';的输入文件的快照:编译ejava'&引用;,java,gradle,apache-kafka,jms,Java,Gradle,Apache Kafka,Jms,我正在尝试为ApacheKafka POC设置一个简单的gradle项目。请建议如何解决此问题 建筑时的堆栈跟踪 这是用于项目的gradle文件 问题来自于属于zookeeper传递库的传递库log4j-1.2.15: +--- org.apache.kafka:kafka_2.10:0.8.0 | +--- org.apache.zookeeper:zookeeper:3.3.4 | | +--- log4j:log4j:1.2.15 | | |

我正在尝试为ApacheKafka POC设置一个简单的gradle项目。请建议如何解决此问题

建筑时的堆栈跟踪



这是用于项目的gradle文件



问题来自于属于zookeeper传递库的传递库log4j-1.2.15:

    +--- org.apache.kafka:kafka_2.10:0.8.0
|    +--- org.apache.zookeeper:zookeeper:3.3.4
|    |    +--- log4j:log4j:1.2.15
|    |    |    +--- javax.mail:mail:1.4
|    |    |    |    \--- javax.activation:activation:1.1
|    |    |    +--- javax.jms:jms:1.1
|    |    |    +--- com.sun.jdmk:jmxtools:1.2.1
|    |    |    \--- com.sun.jmx:jmxri:1.2.1
|    |    \--- jline:jline:0.9.94
|    |         \--- junit:junit:3.8.1
此log4j版本依赖于其他不在maven中央存储库中托管的库(请参阅)

因此,您可以添加jcenter()存储库

repositories {
    jcenter()
    mavenCentral()
}
但是,对于其他应排除的可传递lib,您将遇到其他问题:从可传递依赖项中排除log4j或jdmk和jmx,如下所示:

dependencies {
    api 'org.apache.commons:commons-math3:3.6.1'
    implementation 'com.google.guava:guava:23.0'
    testImplementation 'junit:junit:4.12'

    compile(group: 'org.apache.kafka', name: 'kafka_2.10', version: '0.8.0'){
        exclude group : "com.sun.jdmk"
        exclude group : "com.sun.jmx"

        // or simply exclude all  log4j:
        //  exclude group : "log4j"
    }
    compile 'org.apache.kafka:kafka-clients:0.10.2.0'
}
关于log4j 1.2.15问题的模式详细信息:

repositories {
    jcenter()
    mavenCentral()
}
dependencies {
    api 'org.apache.commons:commons-math3:3.6.1'
    implementation 'com.google.guava:guava:23.0'
    testImplementation 'junit:junit:4.12'

    compile(group: 'org.apache.kafka', name: 'kafka_2.10', version: '0.8.0'){
        exclude group : "com.sun.jdmk"
        exclude group : "com.sun.jmx"

        // or simply exclude all  log4j:
        //  exclude group : "log4j"
    }
    compile 'org.apache.kafka:kafka-clients:0.10.2.0'
}