Maven: Vorteile des Abhängigkeitsmanagements

8

Was sind die Hauptvorteile der Maven-Abhängigkeitenverwaltung? Wir haben einen lib-Ordner auf dem Server, und jeder Entwickler muss nur dieses Verzeichnis in der IDE importieren und auf dem neuesten Stand halten. Könnte Maven einfacher sein als das?

    
argon argon 21.06.2013, 07:51
quelle

6 Antworten

12

Die Verwendung einer pro-project-lib scheint eine einfache Lösung zu sein, und sie ist es auch. Aber irgendwann werden Sie auf Probleme stoßen:

  • Wie erinnerst du dich, woher du foo.jar bekommen hast?
  • Sind Sie sicher, dass es eine legitime Quelle war, an der sich kein Hacker vergriffen hat?
  • Welche Version ist foo.jar genau? Ist es die Originalversion oder etwas, das Sie gepatcht haben?
  • Sie möchten JavaDoc / sources mit diesem ?
  • foo.jar benötigt a.jar benötigt y.jar benötigt z.jar benötigt ... Sie möchten wirklich alles herunterladen und individuell verwalten?
  • Sie beginnen ein zweites Projekt. Jetzt haben Sie zwei Lib-Ordner. Kopieren Sie die Gläser oder referenzieren Sie sie aus dem ersten Projekt?
  • Ihr zweites Projekt benötigt eine andere Version einer JAR. Wie gehst du damit um?
  • Stellen Sie sich vor, Sie möchten foo.jar auf die nächste Version aktualisieren. Mit Maven ist dies eine einminütige Aufgabe. Mit einem lib-Ordner bedeutet das: Suchen im Web, Herunterladen der JAR-Datei, Platzieren an der richtigen Stelle, Umbenennen, Löschen der alten Version, Hinzufügen der neuen Version, Festschreiben der Änderung, Verfluchen, Gleiches tun für alle Abhängigkeiten, ...
  • Sie möchten Ihr Projekt mit jemand anderem teilen. Sie möchten vielleicht nicht Ihre Versionen der JARs - Maven hat einen einfachen und effizienten Mechanismus, um Abhängigkeiten zu umgehen.
  • Schließlich wird Ihre Rechtsabteilung Sie bitten, zu garantieren, dass Ihr Projekt keine inkompatiblen Lizenzen enthält. Maven kann Ihnen einen Bericht über alle Lizenzen all Ihrer Abhängigkeiten geben.
Aaron Digulla 21.06.2013, 08:09
quelle
2

Mit maven können Sie ein privates Repository haben oder öffentliche (wie maven2) verwenden, um die Bibliotheken zu erhalten, die Sie in Ihrem Projekt verwenden. Sie müssen sie also nicht selbst herunterladen und zwischen Ihren Mitarbeitern mit Ihrem Subversion-Server verwalten .

Wenn Sie eine Bibliothek für eine andere ändern oder sie auf eine neuere Version aktualisieren möchten, müssen Sie nur die Versionsnummer oder den Bibliotheksnamen in Ihrer Maven-Konfigurationsdatei ändern, und es wird ohne Rücksicht darauf, wo Sie können Laden Sie die Bibliothek herunter und ohne sie mit allen teilen zu müssen. Sie müssen nur Ihre pom.xml-Datei freigeben.

Maven gibt Ihnen nicht nur das, Sie können konfigurieren, wie Sie die Anwendung (WAR, EAR, JAR, APK, etc.) verpacken, kompilieren (JDK-Version, Parameter usw.) und sogar wie Sie das erstellen Eclipse-Struktur Ihres Projekts, so dass Sie ein neues Projekt erstellen können, das nur Ihre Quellen, Ressourcen und die magische Konfigurationsdatei "pom.xml" enthält.

Sie sollten es versuchen!

    
maqjav 21.06.2013 08:00
quelle
1

Ja, kann es!

%Vor%

Maven macht das automatisch; -)

Es hat auch große Vorteile, wenn Sie kontinuierliche Integration und andere Bereitstellungsmechanismen verwenden. Sie können Ihr Projekt problemlos in jeder Umgebung erstellen, ohne sich um einige Lib-Ordner kümmern zu müssen. Außerdem gibt es eine Menge Plugins bezüglich Build, Deployment, Code Analasys und vielem mehr.

    
André Stannek 21.06.2013 07:59
quelle
1

Natürlich ist Maven großartig, aber es gibt auch Zeiten, in denen ein versionierter lib-Ordner wie der Ihre zumindest einfacher erscheinen kann. Wenn Sie Bibliotheken verwenden, die keine Maven-Metadaten haben, müssen Sie etwas arbeiten, bevor Sie sie in Ihren Maven Repo einfügen können (Sie sollten wahrscheinlich immer noch ein zentrales Repo auf einem Server haben, auf dem Sie solche Dinge platzieren).

>     
kutschkem 21.06.2013 08:06
quelle
0

Zusätzliche Vorteile des Abhängigkeitsmanagements von Maven:

  • es ist einfach, das Javadoc für die meisten Bibliotheken zu bekommen
  • es ist einfach, den Quellcode für die meisten Bibliotheken zu erhalten (z. B. nützlich, wenn Sie etwas debuggen wollen)
  • es ist einfach zu spezifizieren und zu analysieren, was jar bei welchen Abhängigkeiten bei compile-, run-, test-time benötigt.
Puce 21.06.2013 08:22
quelle
0

Folgende Vorteile erhalten Sie durch die Verwendung von Maven-Abhängigkeiten:

1. Kohärenz: - Maven ermöglicht Organisationen, eine Reihe von Best Practices zu standardisieren. Da Maven-Projekte einem Standardmodell entsprechen, sind sie weniger undurchsichtig. Die Definition dieses Begriffs aus dem American Heritage-Wörterbuch fängt die Bedeutung perfekt ein: "Markiert durch eine geordnete, logische und ästhetisch konsistente Beziehung der Teile."

2. Wiederverwendbarkeit: - Maven basiert auf einer Wiederverwendungsgrundlage. Wenn Sie Maven adoptieren, verwenden Sie effektiv die Best Practices einer ganzen Branche.

3. Beweglichkeit: - Maven verringert die Barriere zur Wiederverwendung nicht nur der Build-Logik, sondern auch der Komponenten. Bei der Verwendung von Maven ist es einfacher, eine Komponente zu erstellen und sie in einen Multiprojekt-Build zu integrieren. Es ist einfacher für Entwickler, zwischen verschiedenen Projekten zu springen, ohne eine steile Lernkurve zu haben, die mit einem benutzerdefinierten, selbst gebauten Build-System einhergeht.

3. Wartbarkeit: - Organisationen, die Maven anwenden, können aufhören, den Build zu erstellen und sich auf die Anwendung konzentrieren. Maven-Projekte sind wartungsfreundlicher, weil sie weniger Überraschungen aufweisen und einem gemeinsamen Modell folgen.

Klicken Sie hier , um mehr über den Nutzen zu erfahren

    
Masudul 21.06.2013 07:58
quelle

Tags und Links