Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Gradle中排除可传递的可选Maven系统?_Java_Maven_Gradle - Fatal编程技术网

Java 如何在Gradle中排除可传递的可选Maven系统?

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

我需要在Gradle项目中使用
编译组:“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
)构建代码时,我还需要做些什么才能真正排除这种依赖关系(实际上不需要这种依赖关系)

我使用的是Gradle
4.2.1
(不确定是否可以升级,除非是4.x版本)

我有一个“Hello,World!”应用程序来说明这一点


我觉得这是一个错误,我已经提交了文件,但我可能错了。请告诉我

试试这个。这对我很有用:

configurations {
      all*.exclude module : 'jdk.tools'
}

您能告诉我
观众注释的父POM是否已正确定位和下载吗?至少,这就是版本所在的位置。或者,也许您必须明确提供一个版本?可能它需要找到版本(即通过Gradle的依赖项验证),然后才能排除依赖项。我认为它正在正确下载,但无法继续,因为它找不到适用于
jdk.tools
系统的版本
-scoped
optional
依赖项。我的想法是,如果你能让它以某种方式找到版本,它实际上可能会进入排除处理(尽管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