Inilah masalah umum saya:
Proyek saya P bergantung pada A yang bergantung pada B yang bergantung pada C yang bergantung pada versi 1.0.1 dari D.
Ada masalah dengan versi 1.0.1 dari D dan saya ingin memaksa penggunaan modul lain. Saya tidak tahu cara mendeklarasikan ini di POM proyek saya karena saya belum menambahkan ketergantungan pada D secara langsung. C yang menyatakan ketergantungan pada D.
Penting: Dalam hal ini, tidak hanya versinya yang diubah, tetapi grup & artefaknya juga. Jadi, ini bukan hanya masalah menimpa versi dependensi, melainkan mengecualikan modul dan menyertakan modul lainnya.
Dalam kasus konkret, D adalah StAX yang 1.0.1 memiliki bug . Menurut catatan di bug, "masalah diselesaikan dengan mengganti stax-api-1.0.1 (maven GroupId = stax) oleh stax-api-1.0-2 (maven GroupId = javax.xml.stream)" jadi saya sedang mencoba itu.
Jadi, D = stax: stax-api: jar: 1.0.1 dan C = org.apache.xmlbeans: xmlbeans: jar: 2.3.0
Saya menggunakan maven 2.0.9 jika itu penting.
Keluaran ketergantungan mvn: pohon "
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
Di POM proyek saya, saya memiliki ketergantungan berikut pada "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>
Terima kasih sebelumnya.