Получение "Не удалось захватить снимок входных файлов для задачи ': compileJava'" - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь настроить простой проект gradle для Apache Kafka POC.Пожалуйста, предложите, как решить эту проблему.

stacktrace при сборке


Root cause: org.gradle.internal.resolve.ArtifactNotFoundException: Could not find jms.jar (javax.jms:jms:1.1).
Searched in the following locations:
    https://repo1.maven.org/maven2/javax/jms/jms/1.1/jms-1.1.jar

Это файл gradle, используемый для проекта


apply plugin: 'java-library'


repositories {

     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') 

    compile 'org.apache.kafka:kafka-clients:0.10.2.0'
}

1 Ответ

0 голосов
/ 25 сентября 2018

Проблема исходит от транзитивной библиотеки log4j-1.2.15 , которая принадлежит zookeeper переходным библиотекам:

    +--- 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 (см. Что случилось с JMS 1.1 в Maven Central? )

Таким образом, вы можете добавить jcenter () хранилище

repositories {
    jcenter()
    mavenCentral()
}

Но тогда у вас будут другие проблемы с другими переходными библиотеками, которые вы должны исключить: либо исключите 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 : http://unitstep.net/blog/2009/05/18/resolving-log4j-1215-dependency-problems-in-maven-using-exclusions/

...