Ustalenie zależności pakietów naprawdę nie jest takie trudne. I tak rzadko to robisz. Prawdopodobnie raz podczas konfiguracji projektu i kilka innych podczas aktualizacji. Z maven w końcu naprawisz niedopasowane zależności, źle napisane poms i zrezygnujesz z wykluczeń pakietów.
Nie jest to trudne ... do projektów zabawek. Ale projekty, nad którymi pracuję, mają ich wiele, naprawdę wiele i bardzo się cieszę, że mogę je przejąć, mając dla nich ustandaryzowany schemat nazewnictwa. Ręczne zarządzanie tym wszystkim byłoby koszmarem.
I tak, czasami trzeba popracować nad zbieżnością zależności. Ale pomyśl o tym dwa razy, nie jest to nieodłączne dla Mavena, jest to nieodłączne dla każdego systemu używającego zależności (i mówię tutaj ogólnie o zależnościach Java).
Więc z Antem musisz wykonać tę samą pracę, z wyjątkiem tego, że musisz zrobić wszystko ręcznie: pobranie jakiejś wersji projektu A i jego zależności, pobranie jakiejś wersji projektu B i jego zależności, samodzielne ustalenie, jakich dokładnych wersji używają, sprawdzenie że się nie pokrywają, sprawdzanie, czy nie są niekompatybilne itp. Witaj w piekle.
Z drugiej strony Maven obsługuje zarządzanie zależnościami i pobierze je dla mnie przechodnie i daje mi narzędzia potrzebne do zarządzania złożonością związaną z zarządzaniem zależnościami : mogę analizować drzewo zależności, kontrolować wersje używane w zależnościach przechodnich, wykluczać niektóre z je , jeśli to konieczne, kontrolować Converge całej modułów itp nie ma magicznej. Ale przynajmniej masz wsparcie.
I nie zapominaj, że zarządzanie zależnościami to tylko niewielka część tego, co oferuje Maven, jest o wiele więcej (nie wspominając nawet o innych narzędziach, które ładnie integrują się z Maven, np. Sonar ).
Powolny cykl FIX-COMPILE-DEPLOY-DEBUG, który zabija produktywność. To jest moje główne zastrzeżenie. Dokonujesz zmiany, musisz poczekać, aż kompilacja maven zacznie działać i poczekać, aż zostanie wdrożona. Żadnego wdrażania na gorąco.
Po pierwsze, dlaczego używasz Mavena w ten sposób? Ja nie. Używam mojego IDE do pisania testów, kodu, dopóki nie przejdą, refaktoryzacji, wdrażania, wdrażania na gorąco i uruchamiania lokalnej kompilacji Mavena, gdy skończę, przed zatwierdzeniem, aby upewnić się, że nie zepsuję ciągłej kompilacji.
Po drugie, nie jestem pewien, czy użycie Anta poprawiłoby sytuację. Z mojego doświadczenia wynika, że modularne kompilacje Mavena przy użyciu zależności binarnych zapewniają mi szybszy czas kompilacji niż typowe monolityczne kompilacje Ant. W każdym razie spójrz na Maven Shell, aby uzyskać gotowe do (ponownego) użycie środowiska Maven (które jest niesamowite).
Na koniec, przykro mi to mówić, to nie Maven zabija Twoją produktywność, ale nadużywanie narzędzi. A jeśli nie jesteś z tego zadowolony, cóż, cóż mogę powiedzieć, nie używaj tego. Osobiście używam Mavena od 2003 roku i nigdy nie oglądałem się za siebie.