В моем проекте Ivy разные транзитивные зависимости зависят от одного и того же пакета: javassist .К сожалению, упаковщик не соответствует определению org
(groupId
в терминах Maven).Например:
- версия 3.5.GA имеет org = "org.jboss",
- версия 3.12.GA имеет org = "javassist"
- версия 3.13.У GA есть org = "org.javassist"
Ivy не идентифицирует их как одну и ту же зависимость и извлекает все версии.
Вопрос: как лучше всего проинструктировать Ivy о том, чтоПакеты javassist с любым из приведенных выше определений org
ссылаются на одну и ту же зависимость?
ОБНОВЛЕНИЕ
Я добавил упрощенные версии файлов 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 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
.Оба являются разными версиями одной и той же зависимости.Однако Айви не может идентифицировать это, поскольку у них разные записи org
.