2015-10-06 16 views
7

Bağımlılık ağacımda birden fazla kez listelenen bir bağımlılığım olduğunda, bu bağımlılığın tüm sürümleri aynı olsa bile, Eclipse (bir POM'in Bağımlılık Hiyerarşi sekmesinde) hepsinin dışında olduğunu söyleyecektir (çakışma için atlandı) XXX ile "). Grup kimliği, eser kimliği ve sürüm hep aynı olacak.Neden Eclipse Maven aynı versiyonun bağımlılıklarının çelişkili olduğunu söylüyor?

İşte rastgele seçilen bağımlılık ile basit bir örnek. Maven modeli ve maven-artifact dikkat edin.

maven-core dependency conflict same versions

Eclipse Mars (4.5.0) kullanıyorum

Bu, herhangi bir kullanıcı arayüzünde yanıltıcı mesajlar dışında, herhangi bir şey üzerinde bir etkisi görünmüyor. Özellikle gerçek çatışmaları görmek istesem, her yerde, "çatışma için atlanmış ..." görmek oldukça can sıkıcı.

cevap

8

Eclipse'in "Bağımlılık Hiyerarşisi" sekmesi, M2Eclipse eklentisi tarafından doldurulur. Ve ne yazık ki, bu M2Eclipse eklentisi source code içinde kodlanmış gibi görünüyor. Bağımlılık ihmal edilmemesinin sebebi ne olursa olsun (kopya, sürüm çakışması ...), M2Eclipse eklentisi "çakışma için atlanmış" etiketini ekleyecektir.

Bu tablonun, maven-dependency-plugin numaralı tree hedefinin durumunun bu sekmeyi taklit ettiğini unutmayın. Varsayılan olarak, mvn dependency:tree komutu, atlanan bağımlılıkları göstermeyecektir. verbose bayrağı, true olarak ayarlanmışsa, çıktı, için atlanan her bağımlılığı gösterir: başka bir kopyası; başka birinin sürümü ve/veya kapsamı ile çelişen; ve bağımlılık ağacına bir döngü tanıtmak.

yüzden belki eklenti bir bağımlılık ihmal edilmiş gerçek nedeni gösteren (örneğin daha dependency:tree çıkışında yapıştığı istemek için bir geliştirme isteği, through their Bugzilla, dosya, yerine olabilir bunun için bir hata bulamadık Geçerli varsayılan) ve ayrıntılı ve ayrıntılı mod arasında geçiş yapmak için bir seçenek eklemek.

+1

Ah, darn. Bağlantılar için teşekkürler, ayrıca bana bağımlılığı gösterdiğiniz için: ağaç hedefi. BTW kimse merak ederse, kodu nerede değiştirdiklerini görüyorum (bunu Eclipse'in daha önceki bir sürümü ile yapmadığını söylemeyi unuttum, bu yüzden farklı davranmalarını bekledim): https://github.com/eclipse/m2e-core/commit/85527e1eb1638654d8f33a7106900ef9d1158bc2 # diff-96f1c3968edb48388ea2673b2dd6e8e4L809, performansı artırmak için diğer birçok değişikliğin yanı sıra eşit sürüm kontrolünü de kaldırmış gibi görünüyor. – tobii

+0

@tobii Güzel bulmak! – Tunaki

İlgili konular