gpt4 book ai didi

maven - 在 Maven 中, `package:artifact:jar:version` 和包 :artifact:jar:tests:version`? 有什么区别

转载 作者:可可西里 更新时间:2023-11-01 16:34:58 25 4
gpt4 key购买 nike

使用 Maven 3.0.5

我正在尝试从 com.holdenkarau 获取 spark-testing-base 以使用 Hadoop 3.1。霍登卡劳的 dependency tree包括 Hadoop 2.8.3;这就是为什么我认为我收到错误。

从我的 mvn dependency:tree 我看到以下几行:

[INFO] +- org.apache.hadoop:hadoop-common:jar:3.1.0:provided

...

[INFO] | +- org.apache.hadoop:hadoop-common:jar:tests:2.8.3:test

这些行来自 pom.xml 文件中的这两行:

    <dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>com.holdenkarau</groupId>
<artifactId>spark-testing-base_${scala.compat.version}</artifactId>
<version>${spark.version}_0.12.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils-core</artifactId>
</exclusion>
</exclusions>
</dependency>

我基本上有两个相关的问题:

  • org.apache.hadoop:hadoop-common:jar:3.1.0org.apache.hadoop:hadoop-common:jar:tests 有什么区别:2.8.3。额外的tests 是做什么用的?它从何而来,又是什么意思?

  • 如果我有一个依赖项在 test 范围内使用旧版本的包,我该如何强制它使用新版本;即,我如何强制 spark-testing-base 在测试范围内使用 Hadoop 3.1。

最佳答案

tests 称为分类器,它包含真正只在实际测试上下文中有用的代码,例如嵌入式 HDFS 系统

你可以像这样明确地尝试拉入一个新版本,假设它存在

<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.1.0</version>
<scope>test</scope>
<classifier>test</classifier>
</dependency>

您可能还想在其他依赖项中排除相同的内容,但是您可能会遇到构建问题,因为该库仅用于针对 2.8.3 进行测试

关于maven - 在 Maven 中, `package:artifact:jar:version` 和包 :artifact:jar:tests:version`? 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57150189/

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