In der Dokumentation http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html sehen wir das <scope>
Tag unter<dependency>
Was ist das und wie können wir es zum Ausführen von Tests verwenden?
In der Dokumentation http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html sehen wir das <scope>
Tag unter<dependency>
Was ist das und wie können wir es zum Ausführen von Tests verwenden?
Antworten:
Das <scope>
Element kann 6 Werte annehmen: Kompilieren , Bereitstellen , Laufzeit , Test , System und Importieren .
Dieser Bereich wird verwendet, um die Transitivität einer Abhängigkeit zu begrenzen und um den Klassenpfad zu beeinflussen, der für verschiedene Build-Aufgaben verwendet wird.
kompilieren
Dies ist der Standardbereich, der verwendet wird, wenn keiner angegeben ist. Kompilierungsabhä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 dem Kompilieren, zeigt jedoch an, dass Sie erwarten, dass das JDK oder ein Container die Abhängigkeit zur Laufzeit bereitstellt. Wenn Sie beispielsweise eine Webanwendung für die Java Enterprise Edition erstellen, legen Sie die Abhängigkeit von der Servlet-API und den zugehörigen Java EE-APIs auf den bereitgestellten Bereich fest, da der Webcontainer diese Klassen bereitstellt. Dieser Bereich ist nur im Kompilierungs- und Testklassenpfad verfügbar und nicht transitiv.
Laufzeit
Dieser Bereich gibt an, dass die Abhängigkeit nicht für die Kompilierung, sondern für die Ausführung erforderlich ist. Es befindet sich im Laufzeit- und Testklassenpfad, jedoch nicht im Kompilierungsklassenpfad.
Prüfung
Dieser Bereich gibt an, dass die Abhängigkeit für die normale Verwendung der Anwendung nicht erforderlich ist und nur für die Testkompilierungs- und Ausführungsphase verfügbar ist.
System
Dieser Bereich ähnelt dem bereitgestellten, außer dass Sie die JAR 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 in Abhängigkeit vom Typ pom im Abschnitt verwendet. Es gibt an, dass das angegebene POM durch die Abhängigkeiten im Abschnitt dieses POM ersetzt werden soll. Abhängigkeiten mit einem Importbereich tragen nicht dazu bei, die Transitivität einer Abhängigkeit einzuschränken, da sie ersetzt werden.
So beantworten Sie den zweiten Teil Ihrer Frage:
Wie können wir es zum Ausführen von Tests verwenden?
Beachten Sie, dass der test
Gültigkeitsbereich die Verwendung von Abhängigkeiten nur für die Testphase zulässt.
Lesen Sie die Dokumentation für alle Details.
Sechs Abhängigkeitsbereiche:
src/main
undsrc/test
src/test
<dependencyManagement/>
, die nur in Maven 2.0.9 oder höher verfügbar sindDas Scope-Tag wird immer verwendet, um die transitiven Abhängigkeiten und die Verfügbarkeit des JAR auf Klassenpfadebene zu begrenzen. Wenn wir keinen Bereich bereitstellen, funktioniert der Standardbereich, dh Kompilieren .
Wenn wir keinen Bereich bereitstellen, lautet der Standardbereich "Kompilieren". Wenn Sie dies bestätigen möchten, gehen Sie einfach zur Registerkarte "Effektiver POM" im Eclipse-Editor. Daraufhin wird "Kompilieren" angezeigt.