Git ist gut. Maven ist auch gut. Beides funktioniert zusammen. Gradle funktioniert aber auch mit Git. Maven auch mit Mercurial. Netbeans funktioniert mit allen von den genannten.
Da Du nach Tips suchst: Das manuelle Eintragen von dependencies in eine pom.xml ist nicht verkehrt. Ich mache das auch immer so.
Tip für Netbeans habe ich nicht. Nutze immer IntelliJ.
Maven finde ich toll - auch wenn der Hype zur Zeit gefühlt eher in Richtung Gradle geht.
Im aktuellen Projekt bei meiner Arbeit wird auch Gradle benutzt.
Ich sag es mal so… es fühlt sich so ein wenig wie ein mächtiger Aufsatz auf Maven an.
Allerdings muss man für Gradle Groovy lernen (bzw. wissen wie man wonach sucht) und für Maven reicht XML
Der Ansatz, einen Prozess (nämlich das compilieren und deployen) mit einer Sprache (XML) zu definieren, die praktisch keine Reihenfolgen abbilden kann, sorgt eben für solche Auswüchse, dass man irgendwelche Schritte implizit oder explizit an irgendwelche „phasen“ binden muss, von denen man wissen muss, in welcher Reihenfolge sie durchlaufen werden.
Bestimmte Werte und Prinzipien von Maven sind super. Aber die POM kann schon recht kompliziert werden.
(Erstaunlich: Eine schnelle Websuche sieht aus, als gäbe es nichts, was eine JSON-basierte POM schluckt, und die in eine XML-basierte POM umbaut - JSON wäre schon weit weniger verbose… )
Ansonsten… noch der Hinweis auf diesen einen Pixel, der mich immer so irritiert:
Es sind eher die Konzepte die dahinter stehen die kompliziert sind, und da sind sich Maven und Gradle viel aehnlicher als so ein Beitrag auf „Hackernews“ erklaeren kann.
Unterschiedlich ist zB. wie Maven und Gradle mit Abhaengigieiten von Modulen in einem Projekt umgehen, das macht Gradle besser, aber dependencyManagement im eigentlichen Sinne gibt in Gradle nicht, selbst aufgeflanscht mit dem nebula-dependency-recommender-plugin kommt es auch nicht ganz hin.
Bei kleineren Projekten macht das kaum einen Unterschied, wenn man aber grosse Projekte hat und/oder versucht viele Projekte auf einen einheitlichen Standard zu bringen, merkt man dann schnell die Luecken von Gradle.
Ist aber eigentlich nicht so wichtig was man dann nimmt von den beiden, fuer Maven gibt es im allgemeinen mehr Plugins/Tooling und ist ausgereifter, dafuer halt Legacy in vielen Punkten.
Esoterische Build Tools wie Bazel dagegen… naja, wer das braucht hat es echt noetig
Zu Git möchte ich noch anmerken, dass es hier zwei Themengebiete gibt. Das erste ist die Grundsätzliche Bedienung von Git, das andere ist die Art und Weise wie man Git einsetzt. Wann man also einen oder mehrere Feature Branch anlegt, wie man diese wieder auf den Master merged. Gerade wenn mehrere Leute daran arbeiten wichtig.
Als Einzelentwickler/Anfänger wird man zuerst alles auf dem Master machen und viele Möglichkeiten links liegen lassen.
Wie ist unter Netbeans eigentlich die Code-Completion für Maven-Dependencies. Intellij bietet z.B. im XML eine Auflistung aller möglichen Versionen einer Abhängigkeit, die in den Repositiories zu finden sind an.
Wenn man öfters Projekte mit ähnlichem setup macht, dann wird mittelfristig ein Blick auf archetypes nicht schaden, die ein vorgefertigtes pom.xml und eine grobe Projektstruktur mitliefern.
Aber Ant ist mittlerweile kaum noch wo in gebrauch? Da hab ich auch schon die gruseligsten Sachen mit erlebt.
Funktioniert auch in Netbeans, ich kopiere mir aber meistens den gesamten Dependencyblock von search.maven.org zusammen, oder steuere das über Variablen und nicht direkt im Dependency Tag
Zum Thema: Was anderes als XML würde ich vorschlagen mal https://github.com/takari/polyglot-maven anschauen…da kann man dann in Groovy, YAML, Scala, Ruby, Atom, Closure seine POM’s schreiben…wer es mag…warum nicht…JSON gibt es aktuell nicht…
Polyglot tauchte irgendwo in den ersten Suchergebnissen auf. Es wunderte mich nur, weil JSON ja schon sehr ähnlich zu XML (nur eben weniger verbose) ist, und eine Übersetzung da eigentlich weitgehend 1:1 möglich sein sollte.
JSON ist eine XML-Alternative, weiterentwickeltes Format. Schlanker bei gleichem Informationsgehalt - und es sieht einfach sexy aus.
Ohne groß Mühe ist eine Darstellung möglich…
Aber gut, ihr erstellt auch die pom.xml händisch. Mehr wollt ich erst mal gar nicht wissen.