1. ホーム
  2. maven

[解決済み] mavenで、pom xmlのdependencyタグとpluginタグの違いは何ですか?

2022-04-26 23:14:33

質問

私はmavenツールの初心者です。私はSpringとHibernateでプロジェクトを作成し、それらはpom.xmlでプラグインとして構成されていますが、JUnitは依存関係の下にタグ付けされています。私の質問は、1つはプラグインとして、1つは依存性として、どのようなロジックですか?

解決方法は?

プラグイン、依存関係ともにJarファイルです。

しかし、両者の違いは、mavenでの作業のほとんどはプラグインを使用して行われるのに対し、依存関係はタスクを実行する際にクラスパスに追加される単なるJarファイルであるという点です。

例えば、javaファイルをコンパイルするためにcompiler-pluginを使用するとします。コンパイラ・プラグインはクラスパスに追加されるだけで、コンパイルのトリガーにはならないので、コンパイラ・プラグインを依存関係として使用することはできません。コンパイル時にクラスパスに追加されるJarファイルは、依存関係として指定されます。

あなたのシナリオと同じです。Springの実行ファイルを実行するためにspring-pluginを使用しなければならない [ Spring-pluginが何のために使用されているかはわかりません。私はここで推測しているだけです]。しかし、これらの実行可能ファイルを実行するために依存関係が必要です。Junitはsurefire-pluginでユニットテストを実行するために使用されるので、依存関係のタグに含まれています。

つまり、pluginはタスクを実行するJarファイルであり、dependencyはタスクを実行するためのクラスファイルを提供するJarであると言えます。

ご質問の答えになれば幸いです。