ドキュメンテーション http://maven.Apache.org/surefire/maven-surefire-plugin/examples/testng.html を見ると、<scope>
タグがあります。 <dependency>
の下
それは何ですか。また、テストを実行するためにそれをどのように使用できますか?
<scope>
要素は6つの値を取ることができます:コンパイル、提供、ランタイム、テスト、システム、インポート。
このスコープは、依存関係の推移性を制限し、さまざまなビルドタスクに使用されるクラスパスに影響を与えるためにも使用されます。
コンパイル
これがデフォルトのスコープで、何も指定されていない場合に使用されます。コンパイル依存関係は、プロジェクトのすべてのクラスパスで利用できます。さらに、それらの依存関係は依存プロジェクトに伝播されます。
提供された
これはコンパイルに非常に似ていますが、実行時にJDKまたはコンテナが依存関係を提供することを期待していることを示しています。たとえば、Java Enterprise Edition用のWebアプリケーションを構築するときは、Webコンテナがこれらのクラスを提供するため、サーブレットAPIおよび関連するJava EE APIへの依存関係を提供されるスコープに設定します。このスコープはコンパイルおよびテストクラスパスでのみ利用可能で、推移的ではありません。
ランタイム
このスコープは、依存関係がコンパイルには必要ではなく、実行には必要であることを示します。実行時クラスパスとテストクラスパスにありますが、コンパイルクラスパスにはありません。
テスト
この範囲は、依存関係がアプリケーションの通常の使用には必要ではなく、テストのコンパイル段階と実行段階でのみ使用可能であることを示しています。
システム
このスコープは、明示的にそれを含むJARを提供しなければならないことを除いて、providedと似ています。成果物は常に使用可能であり、リポジトリー内で検索されません。
import(Maven 2.0.9以降でのみ利用可能)
このスコープは、セクション内のpom型の依存関係に対してのみ使用されます。指定されたPOMをそのPOMのセクションの依存関係に置き換える必要があることを示します。それらが置き換えられるので、インポートの範囲を持つ依存関係は、依存関係の推移性を制限することに実際には関与しません。
質問の後半に答えるには:
テストを実行するためにそれをどのように使用できますか?
test
スコープではテスト段階でのみ依存関係を使用できます。
詳しくは ドキュメント を読んでください。
1行に6つのDependencyスコープ:
スコープタグはクラスパスレベルでjarの推移的な依存性と可用性を制限するために常に使用されます。スコープを指定しない場合、デフォルトのスコープが機能します。つまり、コンパイルとなります。
スコープを指定しない場合はデフォルトのスコープがコンパイルされます。確認したい場合は、Eclipseエディタの[Effective pom]タブに移動するだけで、コンパイル済みとして表示されます。