0

ドキュメントの量を考えると、Ivy は驚くほど混乱する可能性があります。現時点で Ivy について混乱していると思われる点は次のとおりです。

Main Conceptsページでは、キャッシュについて説明しています。

デフォルト設定の調整のチュートリアルでは、ローカル リポジトリについて説明しています。

ローカル キャッシュとローカル リポジトリの両方を持っている場合、ファイル システム リゾルバーも必要になるのはなぜですか? ローカル リポジトリまたはキャッシュが Ivy によって使用されるようにする必要がありますか?

そうでない場合、ファイル システム リゾルバーの動作は、最初にすべての依存関係と推移的な依存関係をダウンロードして整理する方法のようです。次に、ファイル システム リゾルバーをこれらのファイルにポイントします。その後、Ivy は私のファイルシステムから読み取り、ファイルをローカルのリポジトリとキャッシュにコピーします。

私はこれを正しく理解していないと確信しています - これはひどくぎこちないようです。ローカル リポジトリ、キャッシュ、およびファイル システム リゾルバーが指すローカルの違いについての説明をいただければ幸いです。

4

1 に答える 1

0

まず、リポジトリとキャッシュは 2 つの異なる機能概念です。

ローカル、ファイル システム、または URL のリポジトリは、アーティファクトが保存され、大部分が共有される場所でもあります。

「パブリック」リポジトリはアーティファクトを保持し、提供します。Nexus または artifactory は、パブリック リポジトリからアーティファクトのコピーをキャッシュするリポジトリの例であり、通常は「共有」リポジトリと呼ばれます。

「ローカル」リポジトリは、ほとんどの場合、ファイル システム リポジトリです。それらはアーティファクトも提供し (これらのアーティファクトの出所は後で出てきます)、それらのアーティファクトはファイル システムに存在します。

これで、ソース (FileSystem、URL、iBiblio) に関係なく、プロジェクトが解決しているすべてのアーティファクトがキャッシュに入れられます。

私にとって単純明快な理由の 1 つは、アーティファクトを取得した後 (元の場所からアーティファクトを持ってきた後) に普遍的な動作を持たせることです。

キャッシュはマシンのファイル システム上にあり、各アーティファクトの発生元と時間または解決に関する情報が保持されます。アーティファクトに対して行われる操作 (クラスパスの構築、またはある場所から別の「取得」へのコピー) は、キャッシュ内のアーティファクトに対して実行されます。

この少しが役立つことを願っています。

ローカルリポジトリに関する質問(私が尋ねた)に答えるには; ローカル リポジトリには、プロジェクト A が生成し、プロジェクト B で使用される SNAPSHOT など、プロジェクトが生成する成果物がいっぱいです。それらはリリースではなく、通常は一時的なものです。

最後に、ローカル リポジトリは FileSystem リポジトリですが、すべての FileSystem がローカル リポジトリというわけではありません。頭のてっぺんから、Nexus (URL リゾルバー) を使用せずに、すべての人がアクセスできる FileSystem 上にある共有リポジトリ (チーム内でアーティファクトを共有するため) のことが考えられます。

于 2013-01-09T09:37:38.887 に答える