如何排除java-catalog build.gradle文件中的依赖项

rggaifut  于 2023-05-29  发布在  Java
关注(0)|答案(3)|浏览(203)

bounty将在5天内到期。此问题的答案有资格获得+50声望奖励。user352290正在寻找一个答案从一个有信誉的来源

Java目录引用snakeyaml如下
Java catalog build.gradle声明库('snakeyaml ','org. yaml','snakeyaml').version('2.0')
编译抛出以下错误,如何在java目录本身中执行exlcude以避免加载android.jar

* What went wrong:
Execution failed for task ':compileTestJava'.
> Could not resolve all files for configuration ':testCompileClasspath'.
   > Could not find snakeyaml-2.0-android.jar (org.yaml:snakeyaml:2.0).
     Searched in the following locations:
         https://repo.maven.apache.org/maven2/org/yaml/snakeyaml/2.0/snakeyaml-2.0-android.jar

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org
n8ghc7c1

n8ghc7c11#

首先打开java项目的build.gradle文件,然后在dependencies中找到snakeyaml的声明位置。
之后,您可以像这样排除组:

dependencies {
    // ... other dependencies
    compile('org.yaml:snakeyaml:2.0') {
        exclude group: 'org.yaml', module: 'snakeyaml-android'
    }
    // ... other dependencies
}
inkz8wg9

inkz8wg92#

作为产品snakeyaml-2.0-android.jar不存在,但snakeyaml-2.0.jar存在。
应用测试依赖项(在下面的示例中- javafaker用于说明),该测试依赖项试图下载snakeyaml-2.0-android.jar工件并请求存在的工件:

dependencies {
    testImplementation("com.github.javafaker:javafaker:1.0.2") {
        exclude(group = "org.yaml", module = "snakeyaml")
    }
    testImplementation("org.yaml:snakeyaml:2.0")
}
lrpiutwd

lrpiutwd3#

不能在版本目录中定义任何排除项。
版本目录就像它的名字一样,只是一个工件及其版本的目录,您可以从中进行选择。
使用它们在效果上等同于直接声明依赖项,只是没有版本目录的好处。
版本目录中的声明可以在许多地方使用。
像排除、属性、工件类型等都不在版本目录的范围内,而是在您使用它的范围内。
也许你也想看看平台。当问到是使用平台还是版本目录时,答案通常是两者都用。

相关问题