【问题标题】:In Maven, what is the difference between `package:artifact:jar:version` and package:artifact:jar:tests:version`?在 Maven 中,`package:artifact:jar:version` 和 package:artifact:jar:tests:version` 有什么区别?
【发布时间】:2019-07-25 12:13:43
【问题描述】:

使用 Maven 3.0.5

我正在尝试从 com.holdenkarau 获取 spark-testing-base 以使用 Hadoop 3.1。 Holdenkarau 的 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。

【问题讨论】:

    标签: maven hadoop dependencies maven-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 进行测试

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 2018-06-16
      • 2015-05-13
      • 2014-10-10
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      相关资源
      最近更新 更多