Powoli zastępujemy pliki poleceń wsadowych (Windows .bat), które po prostu zgarnęły klasy skompilowane w IDE dla programistów, bardziej wszechstronnymi kompilacjami Ant (tj. Pobierają z CVS, czystą kompilację, jar, archiwum, e-mail itp.)
Spędziłem dużo czasu na nauce (i debugowaniu problemów) z Antem, więc najwygodniej jest go używać do tych zadań. Zastanawiam się jednak, czy Ant nadal jest w tak szerokim użyciu, jak wtedy, gdy zaczynałem się uczyć, czy też „świat przeniósł się” na coś nowszego (i może bardziej płynnego). (Zacząłem widzieć więcej materiałów do budowy Maven, których nigdy nie używałem).
Praktyczne znaczenie tego pytania polega na tym, czy zachęcam nowych programistów do nauki Anta , czy też powinni się uczyć czegoś innego dla kompilacji?
Nigdy nie przesadzam z trendami, więc wspaniale byłoby usłyszeć od innych programistów Java, co ich zdaniem jest najlepszym narzędziem do budowania, i czego według nich nowi programiści powinni się uczyć.
Odpowiedzi:
Zgadzam się z innymi, że Maven przejął najważniejsze projekty, na które patrzyłem.
Podczas gdy Ant jest bardzo elastyczny, plik kompilacji nie jest ustandaryzowany, więc kiedy przenosisz się do nowego projektu lub firmy, cele są nazywane inaczej, plik ma inną strukturę, zależności między celami mogą zostać ustanowione lub nie itp.
Dzięki Maven zyskujesz także to, że nie musisz nosić zależności binarnych (mówię o słoikach) w swoim systemie SCM. Wiele innych świetnych narzędzi Java wie, jak odczytać plik POM Maven (korzyść ze standaryzacji), więc narzędzia takie jak IDE mogą bardzo szybko skonfigurować projekt Maven, a narzędzia takie jak Jenkins mogą łatwo wykonywać kompilacje Maven.
źródło
Pracowałem z Antem i Maven. Z mojego doświadczenia wynika, że Maven ma bardzo silną przewagę nad Antem.
Z mniej pozytywnych uwag na temat maven moje dotychczasowe doświadczenia z dokumentacją nie były tak wspaniałe. Wydaje mi się, że widziałem produkt z dokumentacją gorszą niż dokumentacja maven, ale nie pamiętam, który (niektóre starożytne biblioteki CSV iirc).
źródło
Używamy Maven od kilku lat. Obsługuje skrypty Ant (podobnie jak Ant obsługuje BeanShell), więc Twoja wiedza na temat Ant może być nadal przydatna. Maven jest znacznie potężniejszy, ale ma pewne dodatkowe wymagania dotyczące infrastruktury (będziesz chciał, aby serwer Artifactory lub Nexus hostował twoje kompilacje, jeśli dzielisz komponenty między wiele projektów). Różni się również od Anta, więc nie możesz wykorzystać dużej wiedzy.
źródło
Myślę, że sam Ant jest martwy w wodzie; ręczne określenie wszystkich zależności ścieżki klasy (w zależności od konfiguracji) jest zbyt ręczne i narażone na błędy. Jeśli Ant jest używany wraz z narzędziem do zarządzania zależnościami, takim jak Ivy, zachowuje swoją moc i eliminuje potrzebę ręcznego zarządzania zależnościami.
Innym problemem związanym z Antem w porównaniu z Mavenem jest brak standaryzacji, o którym wspomniano w innych odpowiedziach. Podczas przechodzenia od projektu do projektu lub pracy do pracy jedną z najbardziej irytujących rzeczy jest dla mnie poznanie nowego standardu dla różnych plików Ant. Cel konwencji Mavena dotyczący konfiguracji oznacza, że dwa różne projekty będą miały bardzo podobną strukturę, dzięki czemu przejście między nimi będzie znacznie łatwiejsze niż w przypadku Anta.
Jeśli chodzi o to, czy Ant nadal jest głównym nurtem, czy nie, będzie to zależeć od środowiska programistycznego, w którym pracujesz. Jeśli projekt jest w małej firmie lub start-upie, wyobrażam sobie, że Maven będzie naturalnym wyborem i można poświęcić czas inwestować w infrastrukturę, taką jak Artifactory. Jednak duże firmy zainwestują wiele lat i dużo pieniędzy w swoją infrastrukturę Ant (konfiguracje, globalne pliki kompilacji itp.), Co oznacza, że będą mniej skłonni do rezygnacji z technologii, w którą zainwestowali tyle pieniędzy.
źródło
Maven rośnie od wielu lat i teraz muszę się tego nauczyć. Wszystko będzie się zawsze zmieniać, a świadomość, że Ant traci pozycję, nie jest złą rzeczą.
Maven może być na topie i przybywać tylko przez krótki czas, ale jeśli ułatwi to nam pracę, warto zainwestować czas na naukę.
źródło