我在iven.xml中添加了一个依赖项(让我们将其命名为A),它在maven central中有一个pom文件。常春藤使用ibiblio来解决Maven的依赖关系。添加到ivy.xml的依赖项(A)具有传递依赖性(B)。到目前为止这么好。传递依赖关系(B)的依赖关系(C)不能由常青藤解决。常春藤无法解决作为传递依赖项依赖项的依赖项的范围
我的ivy.xml定义的这样的:
<dependency org="Z" name="A" rev="0.6-SNAPSHOT" conf="*->default"/>
在B的POM文件,C在编译和测试范围定义既象下面这样:
<dependency>
<groupId>X</groupId>
<artifactId>C</artifactId>
</dependency>
<dependency>
<groupId>X</groupId>
<artifactId>C</artifactId>
<type>test-jar</type>
<scope>test</scope>
</dependency>
当我看的B的xml文件是由常春藤常春藤的缓存文件(〜/ .ivy2 /缓存/ X/C /常春藤-0.98.8-hadoop2.xml),它看起来像这样解决:
<dependency org="X" name="C" rev="0.98.8-hadoop2" force="true" conf="test->runtime(*),master(*)"/>
<dependency org="X" name="C" rev="0.98.8-hadoop2" force="true" conf="test->runtime(*),master(*)">
<artifact name="C" type="test-jar" ext="jar" conf="" m:classifier="tests"/>
</dependency>
因此,常春藤不能正确定义C作用域。为了记录,我没有权限修改POM文件,因为它们是第三方项目。我该如何解决它?
我是很新的Maven的,但在我的环境中也不会拉的依赖如果'version'元素没有被包含在pom.xml中的组和工件ID中 - 是否有帮助? – Mikaveli
B的pom文件是一个孩子pom。因为它没有版本标签。顺便说一句,如果我在Maven项目中使用A没有问题。我认为常青藤不能正确映射子依赖项的范围B. – Talat
如果该模块位于Maven Central,为什么不把它作为示例?按照现状,我不明白问题在哪。 –