Mavenプロジェクトをオフラインでビルドする

ライブラリの依存関係やスコープを管理できたり、様々なレポートを出力できたりと、なんだかんだいってもMavenは便利です。少しでも道から外れるとpom地獄が待っていますが、幸いにしてトラウマになるような事態に出会ったことはいまのところありませんw
ただ、仕事では納品後にユーザがどんな環境でビルドするからわからないからオンライン前提じゃないとビルドできないMavenは使いにくいケースが多く、場合によっては開発時はMavenを使うけどAntでもビルドできるようにしておく、みたいな不毛なことをしたりしていました。もちろんMavenのローカルリポジトリをコピーしてプロジェクトと一緒に配ればオフラインでもビルド可能な環境を作ることはできるのですが、もっとポータビリティの高い方法はないかなぁ…と思っていたところ、@shimashima35さんに簡単な方法を教えていただきました。
ポイントは-Dmaven.repo.localでローカルリポジトリの場所を指定できるという点です。まずは以下のようにしてそのプロジェクトで必要とする全てのJARファイルを-Dmaven.repo.localで指定したrepositoryディレクトリにダウンロードします。

> mvn dependency:go-offline -Dmaven.repo.local=repository

この状態で以下のようにすればオフラインでビルドを行うことが可能です。

> mvn package -Dmaven.repo.local=repository

オプションを指定するのが面倒ですが、ポータビリティの高いオフラインビルドの方法ということで言えばやりたいことは実現できています。ただ、依存するライブラリやMavenプラグインなどのJARがすべてプロジェクト内のディレクトリに配置されるため、サイズがかなり大きくなってしまいますね。仕方ないところではありますが…。