Paket bağımlılıklarını anlamak o kadar da zor değil. Yine de nadiren yapıyorsun. Muhtemelen proje kurulumu sırasında bir kez ve yükseltme sırasında birkaç tane daha. Maven ile, uyumsuz bağımlılıkları, kötü yazılmış pomları düzeltir ve yine de paket dışlamaları yaparsınız.
O kadar da zor değil ... oyuncak projeleri için. Ancak üzerinde çalıştığım projelerde pek çok, gerçekten çok var ve onları geçişli olarak, onlar için standart bir adlandırma şemasına sahip olmaktan çok memnunum. Tüm bunları elle elle idare etmek bir kabus olur.
Ve evet, bazen bağımlılıkların yakınsaması üzerinde çalışmanız gerekir. Ama iki kez düşünün, bu Maven'e özgü değildir, bu bağımlılıkları kullanan herhangi bir sisteme özgüdür (ve burada genel olarak Java bağımlılıklarından bahsediyorum).
Yani Ant ile, her şeyi manuel olarak yapmanız gerekmesi dışında aynı işi yapmanız gerekir: A projesinin bazı versiyonlarını ve bağımlılıklarını kapmak, B projesinin bazı versiyonlarını ve bağımlılıklarını almak, tam olarak hangi versiyonları kullandıklarını kendiniz bulmak, kontrol etmek üst üste binmediklerini, uyumsuz olup olmadıklarını kontrol ettiklerini vb. Cehenneme hoş geldiniz.
Öte yandan, Maven bağımlılık yönetimini destekliyor ve bunları benim için geçişli olarak alacak ve bağımlılık yönetiminin doğasında bulunan karmaşıklığı yönetmem için ihtiyacım olan araçları sağlıyor : Bir bağımlılık ağacını analiz edebilir, geçişli bağımlılıklarda kullanılan sürümleri kontrol edebilir, bazılarını hariç tutabilirim onları eğer gerekli sihirli yoktur vb modüller arasında Converge kontrol ederler. Ama en azından desteğiniz var.
Ve bağımlılık yönetiminin Maven'in sunduklarının sadece küçük bir parçası olduğunu unutmayın, çok daha fazlası var (Maven ile güzel bir şekilde bütünleşen diğer araçlardan, örneğin Sonar'dan bahsetmiyorum bile ).
Üretkenliği öldüren yavaş DÜZELTME-DERLE-ÇÖZ-DEBUG döngüsü. Bu benim ana yakınmam. Bir değişiklik yaparsınız, maven yapısının devreye girmesini ve konuşlandırılmasını beklemeniz gerekir. Hiçbir şekilde sıcak dağıtım yok.
İlk olarak, neden Maven'i böyle kullanıyorsunuz? Yapmıyorum. Sürekli derlemeyi bozmayacağımdan emin olmak için, işim bittiğinde, taahhüt etmeden önce testler yazmak, geçene kadar kod yazmak, yeniden düzenlemek, dağıtmak, sıcak dağıtmak ve yerel bir Maven derlemesi çalıştırmak için kullanıyorum.
İkincisi, Ant kullanmanın işleri daha iyi hale getireceğinden emin değilim. Ve deneyimlerime göre, modüler Maven, ikili bağımlılıkları kullanarak derlemeleri, tipik monolitik Karınca yapılarına göre daha hızlı derleme süresi sağlıyor. Her neyse, Maven ortamını (yeniden) kullanmaya hazır (bu arada bu harika) için Maven Shell'e bir göz atın .
Sonunda, ve bunu söylediğim için üzgünüm, üretkenliğinizi öldüren gerçekte Maven değil, aletlerini kötüye kullanıyorsunuz. Ve eğer bundan memnun değilseniz, ne diyebilirim, kullanmayın. Kişisel olarak, 2003'ten beri Maven kullanıyorum ve hiç arkama bakmadım.