首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ivy发布到存储库不更新本地缓存

Ivy发布到存储库不更新本地缓存
EN

Stack Overflow用户
提问于 2011-01-07 23:11:04
回答 3查看 1.3K关注 0票数 3

给予:

  • 使用Hudson/Ant的建筑。
  • 常春藤缓存超时设置为5分钟。
  • Ivy存储库包含项目A版本2.2.2和项目B版本1.1.1。
  • 项目B依赖于项目A。

事件:

  1. API更改为项目A。
  2. 对项目B作了相关的修改。
  3. 构建项目A版本2.2.3并将其发布到存储库。
  4. 5分钟后,构建了项目B版本1.1.2。
  5. 项目B失败了,仍然从常春藤缓存中提取项目A版本2.2.2。
  6. 5分钟后,项目B将正确构建,项目A版本为2.2.3

我已经看过了,但没有看到一个明显的解决方案(除了没有缓存?)。发布上是否有将更新本地缓存和回购的设置?您需要显式地发布到两者吗?

EN

回答 3

Stack Overflow用户

发布于 2011-01-29 05:17:59

推测一下:如果A和B构建在同一台机器上,那么在A的构建结束时执行会刷新缓存吗?如果A和B建立在不同的机器上,那是没有帮助的。

票数 0
EN

Stack Overflow用户

发布于 2011-03-15 14:47:15

一种类似于(但不像)不缓存的解决方案是通过设置以下常春藤属性来减少缓存中存在的时间:

代码语言:javascript
复制
ivy.cache.ttl.default                 = 30s

也许这会解决你的问题,暂时。尽管如此,它并不比不缓存好多少。

在我的头上,我可能会尝试的另一件事是关闭缓存,然后通过在您的常春藤设置文件中创建一个文件系统解析器(指向缓存并将其放在链的较低位置)手动重新实现缓存。看起来是这样的:

代码语言:javascript
复制
<ivysettings>
    <settings defaultResolver="all-repositories" />
    <include file="ivysettings-common.xml" />
    <resolvers>
        <chain name="all-repositories" returnFirst="true" >
            ...
            <ibiblio name="ibiblio" m2compatible="true" />
            <filesystem name="manual-cache">
                <ivy pattern="${ivy.default.ivy.user.dir}/cache/${ivy.local.default.ivy.pattern}" />
                <artifact pattern="${ivy.default.ivy.user.dir}/cache/${ivy.local.default.artifact.pattern}" />
            </filesystem>
            ...
        </chain>    
    </resolvers>
</ivysettings>

注意: ivy.default.ivy.user.dir、ivy.local.default.ivy.pattern和ivy.local.default.artifact.pattern是默认设置的内置属性。在这个例子中,我在这里引用它们,但是我不需要做任何其他的特殊工作来设置它们(它们已经包含了正确的默认值)。

我希望这些方法之一能解决你的问题。这是目前想到的唯一两种可能的解决办法。

票数 0
EN

Stack Overflow用户

发布于 2021-11-18 19:33:02

在项目B的ivy文件中,您需要在依赖项上将更改的属性设置为true。

见常春藤文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4631119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档