共享常春藤缓存,但在eclipse中单独的分辨率缓存

时间:2012-09-06 17:46:46

标签: eclipse ivy ivyde

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

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

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

我们想要做的是使用工作区名称(就像Eclipse提供了${workspace_name}变量一样),但似乎并非如此。我在可用变量列表中找不到类似的内容,在调试器中运行常春藤时,我们看不到任何包含工作区名称的内容。

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

Managing conflicting ivy repositories (in eclipse)

How to override the location of Ivy's Cache?

1 个答案:

答案 0 :(得分: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中获取工作区名称将非常有用。

建议将受到高度赞赏。