Die kurze Antwort lautet: Die Tools machen das gleiche, aber auf unterschiedliche Weise. Der Unterschied besteht darin, wie Sie dann Ihr Projekt erstellen können. Apache Maven entscheidet sich für "folge unserer Konvention" und Gradle gibt dir Flexibilität. Einige Entwickler wollen kein neues Werkzeug oder haben keine Zeit zu lernen, wie man es richtig benutzt.
Nun ist die lange Antwort ...
richtig zu verstehen, warum einige Devs zu Apache Maven gebunden sind, haben wir einige Jahre in der Vergangenheit zu suchen.
Apache Maven
ist ein Build-Automatisierungstool wie Gradle
.
Maven wurde 2004 veröffentlicht. Gradle
erste Version stieg auf 2007, aber er wurde nicht so populär wie Maven
in den frühen Tagen. Einige Entwickler möchten nichts Neues lernen und die meisten Unternehmen wollen nicht den Austausch eines bereits laufenden und gemeisterten Tools (Maven
) für das neue Kind auf dem Block riskieren.
Gradle wurde populär, als die Android-Entwicklung stieg. Androids Projekt hat eine andere Projektstruktur als Java EE/Web Projekte. Der Versuch, Maven auf Androids Projekt zu verwenden, fühlt sich einfach unnatürlich an, das Tool war nicht darauf vorbereitet, Flexibilität zu bieten.
Bis jetzt kann Apache Maven in einfachen Java EE-Projekten verwendet werden, ohne dass es Ihnen wehtut, wenn Sie die erzwungenen Konventionen bereits kennen. Entwickler, die Gradle nicht kennen/nicht mit Android-Apps in Kontakt gekommen sind, haben keine Motivation, zu einem anderen Tool zu wechseln.
Meiner Meinung nach ist Gradle
besser als Apache Maven
in jeder Hinsicht, die Sie sich vorstellen können. Es gibt Ihnen Flexibilität und versucht Ihnen nicht in die Quere zu kommen, ein "Feature", das Sie in Apache Maven
nicht finden können. Wenn Sie dem Lebenszyklus Apache Maven
nicht folgen, wird Ihr Build fehlschlagen, das ist es.
Zum Beispiel kann Ihr Code über viele Verzeichnisse in jeder Art von Layout verteilt werden, wenn Sie Gradle
verwenden. Wenn du auf Maven
bist und du nicht der "Konvention" folgst, wirst du einige Stunden verlieren, wenn du deine POM-Datei (Maven
's Build-Datei) änderst, um deine Ordnerstruktur zu verstehen und damit umgehen zu können.
Zum Beispiel: Java-Quellcode muss auf src/main/java
Ordner sein. Wenn Sie ein altes Projekt haben und die Struktur src/java
ist, haben Sie keine Garantie, dass alle Maven Plugins wie erwartet ausgeführt werden.
Gradle
uns einen Gefallen tut und mehr Funktionen zum Vergleich in einem sehr gut organisierten Diagramm. Schau mal. https://gradle.org/maven_vs_gradle/