Jakie są pasemka z głównych różnic między tymi dwoma narzędziami?
Jak to się stało, że Apache ewoluował, tworząc dwa całkowicie oddzielne zestawy narzędzi, które są tak bardzo celowo podobne?
Pierwszą rzeczą do zrozumienia jest to, że projekt Apache to nic innego jak parasol, pod którym działają osobne, niezależne projekty. Różne zespoły pracują nad różnymi projektami. Chociaż poszczególni programiści mogą pracować nad wieloma projektami, nie ma żadnej ogólnej mapy drogowej obejmującej Ant, Ivy i Maven.
Mrówka była pierwsza. Został zaprojektowany jako ekwiwalent języka Java dla Make. Chociaż Make może budować projekty Java, jest żmudne: Make istnieje, aby osobno skompilować kilka jednostek kompilacji, a następnie połączyć je. Metoda Java polega na javac
kompilowaniu wszystkiego za jednym razem, a to, co nazywamy „łączeniem”, naprawdę występuje w trzewiach JVM w czasie wykonywania. Marka nie była odpowiednim narzędziem do tego zadania: Makefile dla Java to zasadniczo jeden lub dwa cele ( javac
, jar
).
Ant dodał trochę struktury na Make, ale nie zmienił zasadniczo procesu.
Po pewnym czasie społeczność zdała sobie sprawę, że wyszukiwanie plików jar nie było zabawne. Ponadto nie było standardowego sposobu komponowania projektów. Bez konsekwencji rozwój Java był bałaganem. Maven został zaprojektowany w celu rozwiązania tych problemów: przyniesie wspólną strukturę projektu i zautomatyzuje wyszukiwanie plików jar.
Jednak Ant był nadal bardzo przydatny. Niektóre projekty po prostu bardziej nadają się do doraźnego charakteru procesów Anta. Niektóre projekty nie kompilują kodu. Niektóre projekty były stare i mało prawdopodobne, aby ktokolwiek „uaktualnił” je do Maven.
Wraz z Ivy: dodaje Antowi zarządzanie zależnościami, dając projektom to, co najlepsze z obu światów. Możesz zachować swoje wcześniejsze skrypty lub wysoce spersonalizowane środowisko, ale zyskasz najważniejszą funkcję Mavena: zarządzanie zależnościami.