今まで社内でAntを使っていました。アプリケーションをクライアントに送信する必要があるときはいつでも、すべてのソース コードとすべての jar ライブラリおよび Ant 自体を単純なバッチ ファイルと共にパッケージ化する特別な Ant スクリプトを実行します。
次に、クライアントは、ネットワーク アクセスがまったくない (Ant でさえない) コンピュータにファイルを置き、バッチ ファイルを実行することができます。コンピューターに有効な JDK がある限り、バッチ スクリプトは jar を使用してすべてのコードをコンパイルし、最終的にクライアントによってアプリケーション サーバーにデプロイされる WAR/EAR を作成します。
最近、Maven 2 に移行しましたが、同じことを行う方法が見つかりませんでした。Maven アセンブリ プラグインを見たことがありますが、これはソース配布物またはバイナリ配布物を作成するだけです。ソースコードが含まれているが、使用するライブラリ (Spring、Hibernate など) のバイナリ jar が含まれているため、シナリオは実際には混在しています。
では、Maven を使用して、ネットワークにまったくアクセスできないコンピューターで実行できる自己完結型のアセンブリ/リリース/パッケージを作成することは可能ですか? つまり、すべてのライブラリを内部に含める必要があります。
Maven 自体も内部に含まれている場合は追加のボーナスですが、これは厳密な要件ではありません。最終的なパッケージは、たった 1 つのコマンドで簡単にコンパイルできます (システム管理者が簡単に実行できます)。
このために独自の Maven プラグインを作成することを考えていましたが、誰かが既にこれに遭遇したと思われます。