Nexus Ivy Maven:二级依赖忽略传递
Posted
技术标签:
【中文标题】Nexus Ivy Maven:二级依赖忽略传递【英文标题】:Nexus Ivy Maven : Second Level Dependencies Ignores Transitive 【发布时间】:2014-11-28 11:34:22 【问题描述】:1.) 我有一个具有这种常春藤依赖项的 Project1:
<dependency org="xalan" name="serializer" rev="2.7.1" transitive="false" conf="compile->default" />
这个项目带来了serializer.jar(就只有这个jar,OK!)
2.) 在第二个项目(Proyect2)中,我放置了下一个依赖项:
<dependency org="com.net" name="Project1" rev="latest.integration" conf="default->default;compile->compile;runtime->runtime" transitive="true">
</dependency>
这个“项目2”带来:
-
项目一
Serializer.jar
xml-apis.jar
尽管在 xalan 依赖项中将转移设置为 false。
我在我的 Eclipse + IVEDe 环境中没有这种行为,只有 Nexus 和 Maven.... 这似乎是错误的,因为在 Project1 上我将 xalan 传递性设置为 false。
【问题讨论】:
【参考方案1】:在项目 1 中尝试以下依赖项,看看是否能解决问题:
<dependency org="xalan" name="serializer" rev="2.7.1" conf="compile->master" />
请参阅以下关于 Ivy 如何解释 Maven 模块和范围的答案:
How are maven scopes mapped to ivy configurations by ivy我不喜欢关闭传递依赖。我认为依赖配置映射要好得多,如果绝对必要,还可以包含一个排除语句来删除令人反感的依赖关系。
【讨论】:
嗨!解决问题的另一种方法是排除 xml-apis 。对我来说,它以这种方式工作(排除模块='xml-apis'),但是发送主配置进行编译是另一种选择。但是,我想说的是,在我定义依赖传递=“假”的方式中,不应该提供第三方库.... ,但是使用 Maven 和 Nexus 给我带来了 Serializer 和 Xml-apis .... 我不知道为什么.. 逻辑行为是本地的!:-)!没有传递性...以上是关于Nexus Ivy Maven:二级依赖忽略传递的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Sonatype Nexus 作为 Ivy 依赖项的镜像 [重复]
ivy(2.3.0 或 2.4)不使用分类器解析 SNAPSHOT maven 依赖项