Mavenに、マシンにインストールされているアーティファクトではなく、リモートアーティファクトを使用させる方法はありますか?コンパイルエラーではなくランタイムエラーを心配しているので、ビルドサーバーは有効なオプションではありません。
PS .m2フォルダーを削除または名前変更できることはわかっていますが、これを行うにはもっと賢い方法があるに違いありません。たぶんプラグインや特別なコマンドパラメータ?
Mavenに、マシンにインストールされているアーティファクトではなく、リモートアーティファクトを使用させる方法はありますか?コンパイルエラーではなくランタイムエラーを心配しているので、ビルドサーバーは有効なオプションではありません。
PS .m2フォルダーを削除または名前変更できることはわかっていますが、これを行うにはもっと賢い方法があるに違いありません。たぶんプラグインや特別なコマンドパラメータ?
ローカル リポジトリがないということは、クラスパスがほぼ完全にリモート サーバー上の URL で構成されていることを意味します。実行がひどく、接続が切断されるとクラスローダーの問題が発生するため、これがサポートされる理由がわかりません。ローカル リポジトリを使用すると、コンパイル/実行が開始される前に jar を利用できるようになります。
また、WAR および EAR プロジェクト (および依存関係プラグインを使用する多くのプロジェクト) は、パッケージ化を完了するために jar をダウンロードすることに依存していることを考慮してください。ビルドごとにリモート リポジトリからこれらを取得する必要がある場合、膨大なオーバーヘッドが発生します。中央の管理者は、その負荷に対処することに熱心ではないと確信しています。
考慮すべきいくつかの代替案:
LATEST と RELEASE の詳細については、Maven book のセクション 9.3.1.3 を参照してください。
内部レポジトリ マネージャ (ここでは必須のNexusおよびArtifactory参照) を使用すると、ローカル レポジトリをパージするオーバーヘッドが大幅に削減されます。ローカル ネットワーク トラフィックの負荷が増加するだけです。
私はあなたが求めていることをする方法が本当にあるとは思いません。SNAPSHOTのリリースに応じて調べることができます(ただし、アップストリームプロジェクトのバージョン文字列をSNAPSHOTバージョンに変更することを意味します)。
ちなみに、これは最近のJava Posseエピソード(#268)で詳細に議論されました。彼らが解決策に終わったとは思いませんが、そこにいくつかの良いアイデアが得られるかもしれません。
私はまた、私が自分自身で調べているリッチセラーのアイデアのいくつかが好きです。