ローカル マシンにインストールされている独自のバージョンの Nexus Web アプリ リポジトリを使用しています。スナップショットを保存するリポジトリを 1 つだけ使用して Nexus を構成しました。
http://localhost:8081/nexus/content/repositories/MySnapshots/
Nexus のインストール後、デフォルトのリポジトリをすべて削除し、独自のリポジトリだけを追加したことに注意してください。(もしかして、これがまずかった?)
mvn クリーン インストールを実行すると、サード パーティのアーティファクトの一部がリモート リポジトリから直接ダウンロードされていることに気付きました。たとえば、ビルドからの出力行の 1 つを次に示します。
Downloading: http://repo.maven.apache.org/maven2/com/sun/org/apache/xml/internal/resolver/...
奇妙なことに、他のアーティファクトがローカルのネクサスを通過して、最終的にアーティファクトに到達していることがわかります。
Downloading: http://localhost:8081/nexus/content/repositories/MySnapshots/org/apache/maven/wagon/wagon-provider-api...
ダウンロード URL の最初の部分は私のローカル リポジトリですが、MySnapshotsの後の部分はすべて apache.org からのものであることに注意してください。
私のNexusリポジトリは、一部のアーティファクトのダウンロードではmaven.apache.orgへのプロキシのように機能していますが、他のものではソースに直接アクセスしているようです。
なぜこれが起こっているのか誰にも教えてもらえますか?
すべてのビルドが常に成功していれば、それほど気にすることはありませんが、大規模なプロジェクトをコンパイルしているときに、アーティファクトが見つからないためにビルドが失敗することがあります。
たとえば、Eclipse jdt に依存する別のプロジェクトをビルドしようとすると、次のエラーが発生します。
Downloading: http://localhost:8081/nexus/content/repositories/MySnapshots/eclipse/jdt/core/eclipse.jdt.core
Could not find artifact eclipse.jdt.core:eclipse.jdt.core
これが私の Nexus が適切に構成されていないことを意味するのか、それともアーティファクト eclipse.jdt.com が実際に存在しないことを意味するのかはわかりません。ダウンロードがローカルの Nexus リポジトリを経由していない場合は、pom/settings.xml ファイルを調査します。代わりに、これは私の Nexus 構成が原因であるかどうか疑問に思います。
これが表示されたときに、Maven の settings.xml とビルド中のプロジェクトの pom ファイルを確認したい場合は、ここで表示できます。
settings.xml: http://pastebin.com/NvLr5bEA
pom.xml: http://pastebin.com/PJ0P3RaK