4

在我们的环境中,我们最终会得到多个工作区(runk 加上多个分支)。

我们希望分离我们的分辨率缓存,但共享实际的缓存。

到目前为止,这很容易,但它需要为本地解析缓存名称手动编码标识符(例如,在 ivysettings.local.xml 中),显然这是次优的,并且必须为每个分支手动设置(或工作区,如果我们每个分支有多个工作区)。

我们想做的是使用工作区名称(好像 Eclipse 提供了一个${workspace_name}变量),但事实并非如此。我在可用变量列表中没有找到类似的东西,并且在调试器中运行 ivy 时,我们看不到任何保存工作区名称的东西。

我已经查看了这两个问题,但似乎都没有解决这个问题:

管理冲突的 ivy 存储库(在 Eclipse 中)

如何覆盖常春藤缓存的位置?

4

1 回答 1

4

结果比我们想象的要容易,但我认为这可能对其他人有所帮助。我们没有通过名称告诉 ivy 解析缓存名称是什么,而是使用相对路径。这来自我们的 ivysettings.local.xml(包含在每个工作区的项目中)显示了我的意思:

结合这个:

<property name="ivy.local.resolution.cache" 
    value="${ivy.settings.dir}/../../.ivy/resolution-cache"/>

有了这个:

<caches default="local-cache" 
        defaultCacheDir="${ivy.local.cache}" 
        resolutionCacheDir="${ivy.local.resolution.cache}">
    <cache name="local-cache"/>
</caches>

让我们大部分时间到达那里:我们有一个共享的本地缓存和每个工作空间分辨率的缓存。

但这给我们留下了另一个挑战:我们仍然想设置正则changingPattern表达式。为此,能够从 eclipse 中获取工作区名称将非常有帮助。

建议将不胜感激。

于 2012-09-06T17:51:00.640 回答