Java 如何在Gradle中排除可传递的可选Maven系统?
我需要在Gradle项目中使用Java 如何在Gradle中排除可传递的可选Maven系统?,java,maven,gradle,Java,Maven,Gradle,我需要在Gradle项目中使用编译组:“org.apache.yetus”,名称:“受众注释”,版本:“0.10.0”。但是,可以看出,它有一个系统范围的可选依赖项 在我的build.gradle文件中定义了以下内容: allprojects { configurations.all { exclude group: 'jdk.tools', module 'jdk.tools' } } 我原以为这样可以从依赖关系树/图中删除依赖关系 然而,它仍在抱怨: c
编译组:“org.apache.yetus”,名称:“受众注释”,版本:“0.10.0”
。但是,可以看出,它有一个系统
范围的可选
依赖项
在我的build.gradle
文件中定义了以下内容:
allprojects {
configurations.all {
exclude group: 'jdk.tools', module 'jdk.tools'
}
}
我原以为这样可以从依赖关系树/图中删除依赖关系
然而,它仍在抱怨:
carlspring@carlspring:/java/opensource/gradle/possible-gradle-bug> gradle --no-daemon clean build
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all files for configuration ':compileClasspath'.
> Could not resolve org.apache.yetus:audience-annotations:0.10.0.
Required by:
project :
> Could not resolve org.apache.yetus:audience-annotations:0.10.0.
> Could not parse POM https://repo1.maven.org/maven2/org/apache/yetus/audience-annotations/0.10.0/audience-annotations-0.10.0.pom
> Unable to resolve version for dependency 'jdk.tools:jdk.tools:jar'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
BUILD FAILED in 4s
2 actionable tasks: 1 executed, 1 up-to-date
当我使用JDK(1.8.0_144
)构建代码时,我还需要做些什么才能真正排除这种依赖关系(实际上不需要这种依赖关系)
我使用的是Gradle4.2.1
(不确定是否可以升级,除非是4.x版本)
我有一个“Hello,World!”应用程序来说明这一点
我觉得这是一个错误,我已经提交了文件,但我可能错了。请告诉我 试试这个。这对我很有用:
configurations {
all*.exclude module : 'jdk.tools'
}
您能告诉我
观众注释的父POM是否已正确定位和下载吗?至少,这就是版本所在的位置。或者,也许您必须明确提供一个版本?可能它需要找到版本(即通过Gradle的依赖项验证),然后才能排除依赖项。我认为它正在正确下载,但无法继续,因为它找不到适用于jdk.tools
系统的版本
-scopedoptional
依赖项。我的想法是,如果你能让它以某种方式找到版本,它实际上可能会进入排除处理(尽管IMO不需要该版本)。我读了错误报告;谢谢你也打开了YETUS JIRA。同意系统依赖性不是一个好的计划。我很惊讶在图书馆里看到它。谢谢!您使用的是哪个版本的Gradle?您的配置
部分是在build.Gradle
的主要部分,还是在所有项目
的主要部分?我导入的Gradle脚本中有配置.all{exclude group:'jdk.tools',module'jdk.tools}
。我在那里还有其他的问题。它没有抱怨,但似乎一点也没有受到影响。你有没有在org.apache.yetus:audience annotations:0.10.0
上试用过它?“Hello,World!”很有效。我的Java版本:jdk1.8.0_181.jdk和gradle:gradle-4.10.2