0

鉴于那里有大量的文档,Ivy 可能会令人惊讶地令人困惑。以下是我在这一小时里对 Ivy 感到困惑的地方:

Main Concepts页面解释了缓存。

调整默认设置教程解释了本地存储库。

如果我同时拥有本地缓存​​和本地存储库,为什么还需要File System Resolver?我是否需要它以便 Ivy 使用本地存储库或缓存?

如果没有,文件系统解析器的工作方式似乎是首先我会下载并组织所有依赖项和传递依赖项。然后我将文件系统解析器指向这些文件。Ivy 然后会从我的文件系统中读取并将文件复制到本地存储库和缓存中。

我确定我没有正确理解这一点 - 这看起来非常笨拙。对于本地存储库、缓存和文件系统解析器指向的本地之间的区别,我将不胜感激。

4

1 回答 1

0

首先,存储库和缓存是两个不同的功能概念。

存储库,本地、文件系统或 URL,是保存工件的地方,并且在大多数情况下,也是共享的。

“公共”存储库保存工件并提供它们。Nexus 或工件是缓存来自公共存储库的工件副本的存储库示例,通常称为“共享”存储库。

“本地”存储库在大多数情况下是文件系统存储库。它们还提供工件(这些工件的来源将在稍后提供),并且这些工件存在于您的文件系统中。

现在,您的项目正在解析的任何工件都将被放入缓存中,无论其来源如何(文件系统、URL、iBiblio)。

对我来说,直截了当的原因之一是在检索工件(将它们从原始位置带回)后对它们进行通用行为。

缓存在您的机器文件系统上,它保存有关每个工件的来源以及时间或分辨率的信息。对工件进行的任何操作(构建类路径,或将它们从一个地方复制到另一个“检索”)都将在缓存中的工件上执行。

希望这一点有帮助。

回答有关本地存储库的问题(我问过);本地存储库充满了项目生成的工件,例如项目 A 生成并将在项目 B 中使用的 SNAPSHOT。它们不是版本,通常是临时的。

最后,本地存储库是一个文件系统存储库,但并非所有文件系统都是本地存储库。从我的脑海中,我可以在一个所有人都可以访问的文件系统上共享存储库(在团队中共享工件),而不是使用 Nexus(这是一个 URL 解析器)。

于 2013-01-09T09:37:38.887 回答