geschätzt werden Sie sind falsch/zweideutig über provided
. Es bedeutet, "Dieses Glas sollte gegen lokal kompiliert werden, aber es wird auf dem Klassenpfad von etwas anderes während der Laufzeit bereitgestellt werden, also nicht in den Klassenpfad für mich enthalten." Zum Beispiel enthalten alle Webcontainer (z. B. tomcat) die Gläser für Servlets. Sie sollten provided
für die Servlet-Klassen verwenden, damit Sie Ihren Code lokal kompilieren können, aber Sie nicht die Servlet-Klassen überschreiben möchten, die tomcat Ihnen bei der Bereitstellung bereitstellt.
system
Mittel „Diese Abhängigkeiten sind auf mein System und ich möchte ihnen direkt Punkt“. Sie möchten dies vermeiden, weil eine andere Person auf einem anderen Computer nicht unbedingt diese Abhängigkeiten haben muss.
Der Unterschied zwischen provided
ist leichter zu zeigen:
<dependency>
<groupId>javax.sql</groupId>
<artifactId>jdbc-stdext</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>
Sehen Sie, wie es das <systemPath>
hat? Das ist der Unterschied. Sie geben den Pfad nicht mit provided
an, vorausgesetzt, Sie wissen, wie Sie die Abhängigkeit von einem Repository abrufen können. system
erhält es von Ihr Dateisystem nur.
Ich habe noch nie von import
gehört. @JigarJoshi verbunden http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html, das besagt,
Import (nur in Maven 2.0.9 oder höher)
Dieser Bereich nur auf einer Abhängigkeit vom Typ pom im <dependencyManagement>
Abschnitt verwendet wird. Es gibt an, dass das angegebene POM durch die Abhängigkeiten in diesem POM-Abschnitt ersetzt werden soll. Da sie ersetzt werden, tragen Abhängigkeiten mit einem Umfang des Imports tatsächlich nicht dazu bei, die Transitivität einer Abhängigkeit zu begrenzen.
ich denke, dies zu sagen ist, „nehmen alle Abhängigkeiten dieses Projekt hat und sie in diesem Abschnitt <dependencyManagement>
inline.“ Jemand korrigiert mich, wenn ich falsch liege.
http://maven.apache.org/guides/einleitung/einleitung-zu-abhängigkeit-mechanik.html –
Das ist wo ich lese, aber irgendwie habe ich gefühlt, dass ich das nicht richtig verstanden habe, daher die Frage nach SO. Trotzdem danke! –
FYI, für ein praktisches Beispiel der Verwendung von 'bereitgestellt 'siehe die Frage, [Enthalten eine Bibliothek während der Programmierung und Kompilierung, aber von Build, in NetBeans Maven-basierten Projekt auszuschließen] (https://stackoverflow.com/q/32087445/642706) –