私は継続的インテグレーション環境で作業しており、自動ビルドプロセスの一部には、Maven管理プロジェクトのコンパイルが含まれています。
私が知りたいのは、Mavenビルドをネットワーク接続から独立させる方法があるかどうかです。
現在、リポジトリにインストールする必要のあるすべてのjarがありますが、問題は、Mavenがプラグインの更新をチェックしようとし、最終的に接続がダウンした場合にビルドが失敗することです。
私は継続的インテグレーション環境で作業しており、自動ビルドプロセスの一部には、Maven管理プロジェクトのコンパイルが含まれています。
私が知りたいのは、Mavenビルドをネットワーク接続から独立させる方法があるかどうかです。
現在、リポジトリにインストールする必要のあるすべてのjarがありますが、問題は、Mavenがプラグインの更新をチェックしようとし、最終的に接続がダウンした場合にビルドが失敗することです。
-oスイッチを使用するか、settings.xmlに<offline> true <offline>を追加することにより、オフラインで実行できます。
Mavenが依存関係やプラグインの更新をチェックする必要があると判断した場合、オフラインで実行するとビルドが失敗する可能性があることを指摘しておく価値があります。<updatePolicy> never </ updatePolicy>を使用してリポジトリを設定すると、これを回避できますが、定期的に(-Uまたは-cpu、あるいはその両方を使用して)更新を強制する必要があります。
リポジトリマネージャを使用している場合は、リポジトリを外部リポジトリのミラーとして設定できます。これには引き続きネットワーク接続が含まれますが、内部ネットワークのみが含まれます(または、リポジトリマネージャーがローカルマシン上にある場合は、接続がまったくありません)。
たとえば、この構成は、セントラルへのすべての呼び出しを、開発ボックスで実行されているローカルNexusサーバーにリダイレクトします。
<mirrors>
<mirror>
<id>central-proxy</id>
<mirrorOf>central</mirrorOf>
<url>http://localhost/nexus/content/groups/public</url>
</mirror>
</mirrors>
-o(オフライン)オプションを使用します
ローカルネットワークにArchiva( http://archiva.apache.org/ )のような「BuildArtifactRepositoryManager」をインストールしてみてください。これはミラーとして機能するため、Mavenはインターネット経由ではなく、ローカルネットワーク上で更新をダウンロードして確認しようとします。Uouはまた、独自のアーティファクトを作成し、それをarchivaで使用する必要があります。