gpt4 book ai didi

maven - 通过分类器 Gradle 更改依赖项

转载 作者:行者123 更新时间:2023-12-03 03:16:35 24 4
gpt4 key购买 nike

你好我有这样的Maven文件

<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>${zookeeper.version}</version>
<exclusions>
<!-- Dependency on log4j will be removed in subsequent versions
see https://issues.apache.org/jira/browse/ZOOKEEPER-850 -->
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- TEST -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<!-- There is no current version of zookeeper-test jar -->
<version>3.4.3</version>
<scope>test</scope>
<classifier>tests</classifier>
<exclusions>
<!-- only needed for log4j -->
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
</exclusions>
</dependency>

我想在 Gradle 上做同样的事情
 compile(group: 'org.apache.zookeeper', name: 'zookeeper', version: '3.4.5') {
exclude(group: 'org.slf4j', module: 'slf4j-log4j12')
exclude(group: 'log4j', module: 'log4j')
}
testCompile(group: 'org.apache.zookeeper', name: 'zookeeper', version: '3.4.3', classifier: 'tests') {
exclude(module: 'jmxri')
exclude(module: 'jmxtools')
}

但是 Gradle 仍然尝试采用最新版本,因此在尝试运行测试时出现错误。
知道这是如何在 Gradle 中完成的吗?

最佳答案

Gradle 在每个模块的基础上执行冲突解决,但分类器只影响 Artifact ,而不影响模块。 (换句话说,zookeeper-tests 没有自己的 POM。)一种解决方案是切换到 zookeeper-3.4.3。 (除了 zookeeper-3.4.3-tests )用于测试类路径。或者,如果您有二进制存储库管理器,则可以更改两个依赖项之一的组或 Artifact ID。

关于maven - 通过分类器 Gradle 更改依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17230989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com