プロジェクトをコンパイルするとき、Mavenは対応する.jarファイルをリポジトリ(通常はセントラルリポジトリ)からダウンロードします(ミラーリング用またはセントラルリポジトリでは利用できない独自のライブラリ用に異なるリポジトリを設定できます) 。
IDEがMavenについて知っている場合、pom
を解析し、依存関係をダウンロードするか、Mavenに依頼してください。それから、依存関係のjarファイルが開きます。これが自動補完の仕組みです。IDEはあなたのためにjarファイルを "インポート"します。
リポジトリには、依存関係の ".jar"ファイルだけでなく、その依存関係を説明する ".pom"ファイルも含まれています。したがって、mavenは再帰的に依存関係をダウンロードし、ソフトウェアをコンパイルするのに必要なすべてのjarファイルを取得します。
あなたがソフトウェアを実行しようとするとき、これらの依存関係をどこで見つけるべきかをJVMに伝える必要があります(つまり、それらをクラスパスに置く必要があります)。
私が通常行っていることは、依存関係をtarget/lib/
ディレクトリにコピーすることです。ソフトウェアを展開して起動するのは簡単です。そのためには、あなたが<build>
で指定maven-dependency-plugin
を、使用することができます。
<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>