【发布时间】:2019-02-25 01:54:12
【问题描述】:
在我的 Ivy 项目中,不同的传递依赖依赖于同一个包:javassist。不幸的是,打包程序与org 定义不一致(Maven 术语中的groupId)。例如:
- 版本 3.5.GA 有 org="org.jboss",
- 版本 3.12.GA 有 org="javassist"
- 版本 3.13.GA 有 org="org.javassist"
Ivy 不会将这些识别为相同的依赖项,并检索所有版本。
问题:指示 Ivy 使用上述 org 定义的 javassist 包引用相同依赖项的最佳方法是什么?
更新
我添加了 Ivy 文件的简化版本来说明疑问 *ivy.xml
<ivy-module version="2.0">
<info organisation="org.myorg" module="mymodule" revision="latest"/>
<dependencies>
<dependency org="org.hibernate" name="hibernate-core" rev="5.2.16.Final" force="true"/>
<dependency org="org.jboss" name="jboss-retro" rev="1.1.0" force="true"/>
</dependencies>
</ivy-module>
*ivysettings.xml
<ivysettings>
<settings defaultResolver="mychain"/>
<caches>
<cache name="mycache" defaultTTL="1d"/>
</caches>
<resolvers checkModified="true">
<chain name="mychain" cache="mycache">
<ibiblio name="myreleases" m2compatible="true" usepoms="true" root="https://repo.local/release/"/>
<ibiblio name="mysnapshot" m2compatible="true" usepoms="true" root="https://repo.local/snapshot"/>
</chain>
</resolvers>
</ivysettings>
以下是Ivy生成的dependency tree:
Dependency tree for org.myorg.mymodule
+- org.hibernate#hibernate-core;5.2.16.Final
| +- org.jboss.logging#jboss-logging;3.3.1.Final
| +- org.hibernate.javax.persistence#hibernate-jpa-2.1-api;1.0.0.Final
| +- org.javassist#javassist;3.22.0-GA
| +- antlr#antlr;2.7.7
| +- org.jboss.spec.javax.transaction#jboss-transaction-api_1.2_spec;1.0.1.Final
| +- org.jboss#jandex;2.0.3.Final
| +- com.fasterxml#classmate;1.3.0
| +- dom4j#dom4j;1.6.1
| \- org.hibernate.common#hibernate-commons-annotations;5.0.1.Final
| | +- org.jboss.logging#jboss-logging;3.3.1.Final
| \- org.jboss.logging#jboss-logging;3.3.0.Final
\- org.jboss#jboss-retro;1.1.0
| +- jboss#jboss-backport-concurrent;2.1.0.GA
| +- org.jboss#javassist;3.5.GA
| \- org.apache.ant#ant;1.7.0
| \- org.apache.ant#ant-launcher;1.7.0
注意hibernate-core 依赖于org.javassist#javassist;3.22.0-GA,而jboss-retro 依赖于org.jboss#javassist;3.5.GA。两者都是相同依赖项的不同版本。但是,Ivy 无法识别,因为它们有不同的 org 条目。
【问题讨论】:
-
能否将您的 ivy.xml 和 ivysettings.xml 添加到问题中?