In der Dokumentation http://maven.Apache.org/surefire/maven-surefire-plugin/examples/testng.html können wir <scope>
-Tag unter <dependency>
sehen.
Was ist das und wie können wir es für den Testlauf verwenden?
Das <scope>
-Element kann 6 Werte annehmen: Compile, bereitgestellt, Laufzeit, Test, System und einführen.
Dieser Bereich wird verwendet, um die Durchlässigkeit einer Abhängigkeit zu beschränken und auch den Klassenpfad zu beeinflussen, der für verschiedene Build-Tasks verwendet wird.
kompilieren
Dies ist der Standardbereich, der verwendet wird, wenn keiner angegeben ist. Kompilierabhängigkeiten sind in allen Klassenpfaden eines Projekts verfügbar. Darüber hinaus werden diese Abhängigkeiten an abhängige Projekte weitergegeben.
unter der Voraussetzung
Dies ähnelt der Kompilierung, weist jedoch darauf hin, dass Sie erwarten, dass das JDK oder ein Container die Abhängigkeit zur Laufzeit bereitstellt. Wenn Sie zum Beispiel eine Webanwendung für Java Enterprise Edition erstellen, legen Sie die Abhängigkeit von der Servlet-API und den zugehörigen Java EE-APIs auf den angegebenen Bereich fest, da der Webcontainer diese Klassen bereitstellt. Dieser Bereich ist nur für den Kompilierungs- und Testklassenpfad verfügbar und ist nicht transitiv.
Laufzeit
Dieser Bereich zeigt an, dass die Abhängigkeit nicht für die Kompilierung erforderlich ist, sondern für die Ausführung. Es befindet sich in den Laufzeit- und Testklassenpfaden, nicht jedoch im Kompilierungsklassenpfad.
Prüfung
Dieser Bereich zeigt an, dass die Abhängigkeit für die normale Verwendung der Anwendung nicht erforderlich ist und nur für die Testkompilierungs- und Ausführungsphasen verfügbar ist.
System
Dieser Geltungsbereich ähnelt dem bereitgestellten, mit der Ausnahme, dass Sie die JAR-Datei angeben müssen, die ihn explizit enthält. Das Artefakt ist immer verfügbar und wird nicht in einem Repository nachgeschlagen.
import (nur in Maven 2.0.9 oder höher verfügbar)
Dieser Bereich wird nur bei einer Abhängigkeit des Typs pom im Abschnitt verwendet. Es gibt an, dass das angegebene POM durch die Abhängigkeiten in diesem POM-Abschnitt ersetzt werden soll. Da sie ersetzt werden, sind Abhängigkeiten mit einem Importumfang nicht an der Begrenzung der Transitivität einer Abhängigkeit beteiligt.
Um den zweiten Teil Ihrer Frage zu beantworten:
Wie können wir es für den Testlauf verwenden?
Beachten Sie, dass der Bereich test
die Verwendung von Abhängigkeiten nur für die Testphase ermöglicht.
Lesen Sie die Dokumentation für vollständige Details.
Sechs Abhängigkeitsbereiche in einer Zeile:
Ein Bereichs-Tag wird immer verwendet, um die transitiven Abhängigkeiten und die Verfügbarkeit des JAR auf Klassenpfadebene zu begrenzen. Wenn wir keinen Bereich angeben, funktioniert der Standardbereich, d. H. Compile.
Wenn wir keinen Bereich angeben, wird der Standardbereich kompiliert. Wenn Sie dies bestätigen möchten, gehen Sie im Eclipse-Editor einfach auf die Registerkarte Effektives Pom.