Ось моя загальна проблема:
Мій проект P залежить від A, який залежить від B, який залежить від C, який залежить від версії 1.0.1 D.
Існує проблема з версією 1.0.1 D, і я хочу змусити використовувати інший модуль. Я не знаю, як заявити про це в програмах мого проекту, оскільки я не додав залежності від 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>
Заздалегідь спасибі.