長年の読者、初めての質問者...
スタンドアロン ネットワークを使用しています (インターネット アクセスなし)。仮想libs-snapshotとlibs-releaseリポジトリを持つ人工サーバーがあります。libs-snapshotの下には、4 つのローカル スナップショット リポジトリがあります。その理由は、他の場所 (接続されていない) からすべてのアーティファクト リポジトリのダンプを取得し、それをこのネットワークにインポートするためです。しかし、そこにあるスナップショット アーティファクトのサブセットを変更する必要があります。そこで、別のローカル スナップショット リポジトリを作成し、それをmine-snapshot-local (maven 2 リポジトリ、一意に設定、最大成果物 = 1?) と呼び、libs-snapshotの先頭に追加しました。バーチャル。理論的には、これにより、必要なアーティファクトの一部を変更し、独自のリポジトリにデプロイして、ローカルの開発者がそれらを取得できるようになります。しかし、接続されていない他のシステムからの定期的なダンプから、他のアーティファクトの 99% に引き続きアクセスできます。さらに、スタンドアロンのネットワーク リポジトリ ( mine-snapshot-local ) に触れることなく、同時に変更されている他のネットワークからドロップを卸売ベースでインポートできます。私たちはアーティファクトリポジトリを「分岐」していると思います...
インポートされたリポジトリの 1 つに直接デプロイすることもできますが、次に別のネットワークからダンプを取得すると、カスタムで変更されたアーティファクトはすべて消えてしまいます...可能であれば働く。
私のローカル日食から、maven プラグインはアーティファクトをエラーなしで明示的にmine-snapshot-localリポジトリにデプロイします。私が見ている問題は、仮想 libs-snapshot の maven-metadata.xml が更新されていないことです。そのファイルのタイムスタンプが更新され、Web ブラウザーで libs-snapshot/whatever_package を参照すると、新しくデプロイされたアーティファクトが既存のスナップショットよりも新しいタイムスタンプで表示されます。ただし、maven-metadata.xml ファイルには、「古い」スナップショットへのポインターがまだ含まれています。
maven-metadata.xml はmine-snapshot-localリポジトリで正常に更新されますが、artifactory がすべてのメタデータ ファイルを仮想リポジトリ用に正しくマージしていないようです。または、何かを誤って構成して、何らかの形で最上位のローカル リポジトリを無視した可能性があります (しかし、スナップショットの jar/pom がまだそこに表示されるのはなぜですか?)。
私たちはartifactory 2.6.1を使用しています(アップグレードするオプションはありません)。
スナップショット リポジトリを一意、非一意、デプロイヤに設定する、スナップショットの数を制限するなど、さまざまなことを試しました。どれも大きな違いはないようです。
問題になる可能性があると私が見ていることの1つは、スナップショットに割り当てられたビルド番号です。たとえば、インポートされたレポでは、アーティファクトのタイムスタンプは 1 週間前ですが、ビルド番号は 4355 である可能性があります。 4355 よりもはるかに小さいもの)。
このように複数のローカル スナップショット リポジトリを作成しようとして、間違ったツリーを作成しているのでしょうか? これで問題ないように思えますが、そうではないかもしれません。