java - 获取“无法捕获任务':compileJava'的输入文件的快照”
问题描述
我正在尝试为 Apache Kafka POC 设置一个简单的 gradle 项目。请建议如何解决这个问题。
构建时的堆栈跟踪
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'
}
解决方案
问题来自属于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 中央存储库上的其他库(请参阅Maven Central 中的 JMS 1.1 发生了什么?)
所以你可以添加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/
推荐阅读
- steam-web-api - Dota 2 api“玩家老虎机”文本表示
- macos - jenkins 在 mac 上找不到 git
- oracle - 在 oracle 中使用带有表达式的 LAG
- php - 只有一个空格,如果你只有一个空格,请删除
- c++ - 如何用另一个模板函数(特别是 glm::dot)包装模板函数?
- flutter - 列的颤振溢出问题
- go - kubernetes client-go 将yaml转成go代码
- xamarin - Xamarin 表单 ios 应用程序由于已弃用的 API 使用 UIWebView 而被拒绝
- python - 如何在通过 SSO 凭证连接时使用 AWS Python 开发工具包
- c - CS50 Week1:信用任务改进?