プロジェクトをコンパイルするときに、Mavenは対応する.jarファイルをリポジトリー(通常は中央リポジトリー)からダウンロードします(ミラーリング用、または中央リポジトリーで使用できない独自のライブラリー用に、さまざまなリポジトリーを構成できます)。
IDEがMavenについて知っている場合、IDEはを解析しpom
、依存関係自体をダウンロードするか、Mavenにダウンロードを依頼します。次に、依存関係のjarを開きます。これにより、オートコンプリートが取得されます。IDEは、舞台裏でjarを「インポート」します。
リポジトリには、依存関係の「.jar」ファイルだけでなく、その依存関係を説明する「.pom」ファイルも含まれています。そのため、Mavenは依存関係を再帰的にダウンロードし、ソフトウェアのコンパイルに必要なすべてのjarファイルを取得します。
次に、ソフトウェアを実行しようとするときに、これらの依存関係を見つける場所をJVMに指示する必要があります(つまり、クラスパスに配置する必要があります)。
私が通常行うことは、依存関係をtarget/lib/
ディレクトリにコピーすることです。これにより、ソフトウェアの展開と起動が簡単になります。これを行うには、 :maven-dependency-plugin
で指定したを使用できます。<build>
<build>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</build>