我将依赖项(让我们将其命名为A)添加到ivy.xml,它在maven central中有一个pom文件。 Ivy使用ibiblio来解决maven依赖关系。添加到ivy.xml的依赖项(A)具有传递依赖性(B)。到目前为止一直这么好。传递依赖(B)的依赖性(C)不能通过常春藤来解决。
我在ivy.xml中定义了A,如下所示:
<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>
当我查看常春藤在常春藤的缓存文件(〜/ .ivy2 / cache / X / C / ivy-0.98.8-hadoop2.xml)中解析的B的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文件,因为它们是第三方项目。我该如何解决?
答案 0 :(得分:0)
我回顾了nutch project的常春藤用法并道歉,但我的结论是,由于以下原因,它过于复杂:
我开始重构构建,但是当我意识到我不理解主要的nutch工件和插件之间的关系时我不得不停下来......(我发现NUTCH-1515很难...大浪费时间Feed插件缺少依赖项。)
我还注意到问题NUTCH-1371要求删除常春藤。如果没有对当前代码库进行重大更改,这将是一个棘手的重构。我怀疑它必须是一个多模块构建,每个插件列出了自己的依赖项。
总之,这项工作没有回答你的问题,但我认为我至少需要记录几小时分析的结果:-)根据NUTCH-1371我不知道你的项目是否会容忍主要的常春藤重构?
以下是我目前取得的成就:
优点:
影响以下Nutch问题