在Maven中,“package:artifact:jar:version”和package:artifact:jar:tests:version”之间有什么区别?
使用Maven 3.0.5 我正试图从com.holdenkarau获得spark测试基地,以便与Hadoop 3.1合作。holdenkarau的包括Hadoop 2.8.3;这就是为什么我认为我会犯错误 从my在Maven中,“package:artifact:jar:version”和package:artifact:jar:tests:version”之间有什么区别?,maven,hadoop,dependencies,maven-3,Maven,Hadoop,Dependencies,Maven 3,使用Maven 3.0.5 我正试图从com.holdenkarau获得spark测试基地,以便与Hadoop 3.1合作。holdenkarau的包括Hadoop 2.8.3;这就是为什么我认为我会犯错误 从mymvn dependency:tree中,我看到以下几行: [INFO] +- org.apache.hadoop:hadoop-common:jar:3.1.0:provided ... [INFO] | +- org.apache.hadoop:hadoop-common:j
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通用
3.1.0
假如
com.holdenkarau
spark-testing-base_${scala.compat.version}
${spark.version}\u 0.12.0
测验
公地小海狸
公地豆核
我基本上有两个相关的问题:
和org.apache.hadoop:hadoop common:jar:3.1.0
之间有什么区别。那额外的org.apache.hadoop:hadoop common:jar:tests:2.8.3
测试是为了什么;它来自哪里?它意味着什么
- 如果我的依赖项在
范围中使用包的旧版本,我如何强制它使用新版本;i、 例如,如何强制测试
在测试范围内使用Hadoop 3.1spark testing base
测试
称为分类器,它包含的代码实际上只在实际测试环境中有用,例如嵌入式HDFS系统
您可以显式地尝试引入这样的新版本,假设它存在
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.1.0</version>
<scope>test</scope>
<classifier>test</classifier>
</dependency>
org.apache.hadoop
hadoop通用
3.1.0
测验
测验
您可能还希望在另一个依赖项中排除相同的内容,但是您可能会遇到构建问题,因为该库只是针对2.8.3编写的