У меня есть случай, когда у меня есть следующие циклические зависимости в Maven:
JAR A version 1.1 depends on JAR B version 1.0
JAR B version 1.1 depends on JAR A version 1.0
По какой-то причине, которую я не знаю, Maven приносит все 4 JAR-файла: A 1.0, A 1.1, B 1.0 и B 1.1, что приводит к конфликту пути к классам.
Это действительно отстой. Я уже прошу разработчиков обоих JAR-файлов исправить это, однако я не могу просто сидеть и ждать того дня, когда они решат это исправить.
Я пробовал это:
<dependency>
<groupId>groupA</groupId>
<artifactId>artifactA</artifactId>
<version>1.1</version>
<type>pom</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>groupB</groupId>
<artifactId>artifactB</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>groupB</groupId>
<artifactId>artifactB</artifactId>
<version>1.1</version>
<type>pom</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>groupA</groupId>
<artifactId>artifactA</artifactId>
</exclusion>
</exclusions>
</dependency>
В результате maven исключает все JAR-файлы, как если бы не было добавлено никакой зависимости, и проект не компилируется, поскольку отсутствуют классы.
Итак, кроме как попросить обоих разработчиков JAR решить эту проблему, что я могу сделать? Как я могу импортировать обе новые зависимости, оставляя при этом обе старые?