5

Nexus や Artifactory などのアーティファクト リポジトリのインデックス作成がどのように機能するかを理解したいと思います。どのようなメリットがありますか? つまり、それはどのように役立ち、アーティファクトを解決するときに使用されるロジックは何ですか?

私の理解では、Lucene インデックスには、特定のプロキシされたリポジトリまたはグループに存在するアーティファクトに関する情報が含まれており、これらのインデックスがダウンロードされると、探しているアーティファクトがリモート リポジトリに含まれているかどうかを簡単に確認でき、試すことができます。それを持っているリポジトリから解決します。用途はこれだけですか?ローカル解決のためにインデックスも照会されますか (各リポジトリにはインデックスがあるため)...? これは実際にどのように機能しますか?

4

3 に答える 3

11

Artifactory は検索にインデックスを使用しません。マシンが遅く、サーバー側で大規模な検索を処理できなかったとき、インデックスは過去のものであると私たちは信じています。検索インデックスが良くない理由のリストの一部を以下に示します。

  • クライアントは検索する前に巨大なファイルをダウンロードする必要があります
  • 頻繁な変更を反映するにはインデックスの更新頻度が低すぎる
  • 検索インデックスを使用するシステムでは、検索を実行するために特別なクライアントが必要です
  • クライアントは、インデックス形式と強力に結合しました。

現在、Artifactory のようなサーバーがリアルタイム検索を提供し、人間用の UI や IDE などのツール用の API を介して公開されている場合、インデックスは廃止され、m2eclipse などのツールとの互換性のためだけに Artifactory でサポートされます。

于 2013-06-10T10:27:57.373 に答える
3

リポジトリのインデックス作成は検索がすべてです。Maven Eclipse プラグインのドキュメントでは、機能について説明しています。

サーバー側のインデックスを維持すると、Maven クライアントの操作がより効率的になります。サーバー側のリポジトリ マネージャーは、インデックスを使用して、アーティファクトを取得するための検索インターフェイスと REST API を有効にすることができます (Sonatype Nexus はデータベースを必要としません)。

于 2013-06-09T17:18:52.953 に答える
2

マークがすでに述べたように、Maven インデックスはすべて検索に関するものです (検索が UI を介して公開されるサーバー側、または REST を使用する) または M2E が行うようなクライアント側 (典型的な例は、コンテキスト ヒントがインデックスを使用する POM エディターでのコード補完です)たとえば、依存関係を追加しながら、G、As、および V を提供します)。

Nexus は、その主な機能を実現するためにインデックスを使用しません。アーティファクトを提供したり、それらをプロキシしたりしますが、その場でインデックスを維持します。繰り返しますが、インデックスは、検索 UI とダウンストリーム パブリッシングの理由 (M2E のようなクライアントの場合) を除いて、「解決」またはその他の方法では使用されません。

Maven Indexer の「クライアント側」の使用例については、こちらの例を参照してください。

HTH、
~t~

于 2013-06-11T09:43:55.597 に答える