2015-10-19 12 views
6

Istnieje wiele odpowiedzi na temat Jak korzystać z w systemie Android i pracować z nim.Co to jest Maven w Android Studio?

Jednak, jak Gradle jest już dostępna, który zarządza procesem kompilacji projektów z Androidem i obsługiwać skomplikowanych scenariuszy w tworzeniu aplikacji Android, takich jak Multi-distribution i Multi-apk,

Co dokładnie jest rola Maven w Android Studio?

I jak różni się od ?

Odpowiedz

7

Krótka odpowiedź brzmi: Narzędzia działają tak samo, ale na różne sposoby. Różnica polega na tym, w jaki sposób można wykorzystać do zbudowania projektu. Apache Maven idzie "podążać za naszą konwencją", a Gradle daje ci elastyczność. Niektórzy deweloperzy nie chcą nowego narzędzia lub nie mają czasu, aby nauczyć się go prawidłowo używać.

Teraz długa odpowiedź ...

Aby właściwie zrozumieć, dlaczego niektórzy deweloperzy są dołączone do Apache Maven, musimy spojrzeć kilka lat w przeszłości.

Apache Maven to narzędzie do automatyzacji kompilacji, takie jak Gradle.

Maven został wydany w 2004 roku. Gradle Pierwsza wersja wydana w 2007 roku, ale nie stała się tak popularna jak na początku Maven. Niektórzy deweloperzy nie lubią się uczyć niczego nowego, a większość firm nie chce ryzykować wymiany już działającego i opanowanego narzędzia (Maven) dla nowego dziecka na bloku.

Gradle zyskało popularność wraz z rozwojem systemu Android. Projekt Androida ma inną strukturę projektu niż projekty Java EE/Web. Próba użycia Mavena w projekcie Androida po prostu wydaje się nienaturalna, narzędzie nie było przygotowane na zapewnienie elastyczności.

Do tej pory Apache Maven może być używany w prostych projektach Java EE bez bycia w dupie, jeśli znasz wymuszone konwencje. Twórcy, którzy nie mają świadomości o Gradle/nie skontaktowali się z aplikacjami na Androida, nie mają motywacji do zmiany na inne narzędzie.

Moim zdaniem, Gradle jest lepsza niż Apache Maven w każdy możliwy sposób. Daje ci elastyczność i stara się nie wchodzić ci w drogę, "funkcja", której nie możesz znaleźć w Apache Maven. Jeśli nie wykonasz cyklu życia Apache Maven, twoja kompilacja się nie powiedzie, to wszystko.

Na przykład twój kod może być rozłożony na wiele katalogów w dowolnym układzie, jeśli używasz Gradle. Jeśli jesteś na Maven i nie postępujesz zgodnie z "konwencją", stracisz kilka godzin zmieniając swój plik pom (Maven), aby zrozumieć i obsługiwać strukturę folderów.

E.g .: Kod źródłowy Java musi znajdować się w folderze src/main/java. Jeśli masz stary projekt, a struktura jest src/java, przepraszam, nie masz gwarancji, że wszystkie wtyczki Maven będą działać zgodnie z oczekiwaniami.

Gradle robi nam przysługę i oferuje więcej funkcji do porównania na bardzo uporządkowanym wykresie. Spójrz. https://gradle.org/maven_vs_gradle/