概要

mvn dependency:copy-dependencies は、Mavenプロジェクトの依存JARを指定したディレクトリにコピーするコマンド。
アプリケーションの動作に必要なJARを個別に取得したい場合に使う。

基本的な使い方

以下のコマンドを実行すると、依存JARが target/dependency にコピーされる。

$ mvn dependency:copy-dependencies

オプション

コピー先ディレクトリを変更する

-DoutputDirectory でコピー先を指定する。

$ mvn dependency:copy-dependencies -DoutputDirectory=lib

スコープを絞る

-DincludeScope でコピー対象のスコープを絞る。runtime を指定するとテスト用JARを除いた実行時に必要なJARのみを取得できる。

$ mvn dependency:copy-dependencies -DincludeScope=runtime

指定できるスコープは compileruntimetestprovidedsystem など。

バージョン番号を除いたファイル名にする

-DstripVersion=true を指定すると、foo-1.0.0.jarfoo.jar のようにバージョン番号なしのファイル名でコピーされる。

$ mvn dependency:copy-dependencies -DstripVersion=true

実用例

実行時に必要なJARのみを lib ディレクトリにコピーする場合は以下を実行する。

$ mvn dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=runtime

Dockerイメージを作成する際に依存JARとアプリケーションJARを別レイヤーに分けたい場合などに有用。