Maven: как переопределить зависимость, добавленную библиотекой

Вот моя общая проблема:

Мой проект P зависит от A, который зависит от B, который зависит от C, который зависит от версии 1.0.1 D.

Существует проблема с версией D версии 1.0.1, и я хочу принудительно использовать другой модуль. Я не знаю, как объявить это в POM моего проекта, так как я не добавил зависимость от D напрямую. Это C, который объявил зависимость от D.

Важно: в этом случае меняется не только версия, но и группа и артефакт. Так что это не просто вопрос переопределения версии зависимости, а скорее исключения модуля и включения другого.

В конкретном случае D является StAX, чей 1.0.1 имеетошибка, Согласно примечаниям в сообщении об ошибке, «проблемы были решены путем замены stax-api-1.0.1 (maven GroupId = stax) на stax-api-1.0-2 (maven GroupId = javax.xml.stream)», поэтому я Я пытаюсь только это.

Таким образом, D = stax: stax-api: jar: 1.0.1 и C = org.apache.xmlbeans: xmlbeans: jar: 2.3.0

Я использую Maven 2.0.9 в случае, если это имеет значение.

Вывод mvn зависимости: дерево "

mvn dependency:tree
[..snip..]
[INFO] +- org.apache.poi:poi-ooxml:jar:3.6:compile
[INFO] |  +- org.apache.poi:poi-ooxml-schemas:jar:3.6:compile
[INFO] |  |  +- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile
[INFO] |  |  |  \- stax:stax-api:jar:1.0.1:compile

В POM моего проекта у меня есть следующая зависимость от «A»:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.6</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.6</version>
</dependency>

Заранее спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос