首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >常春藤:<ivy:settings> vs. <ivy:configure>

常春藤:<ivy:settings> vs. <ivy:configure>
EN

Stack Overflow用户
提问于 2012-11-29 00:46:04
回答 1查看 885关注 0票数 5

我有一个常春藤大师项目,其他人通过svn:externals属性将其包含在他们的项目中。该项目包含Ivy jar,这是连接到我们的项目的默认ivysettings.xml文件,以及一些Ant宏,它们允许我标准化构建jar的方式,等等(例如,用户使用<jar.macro><jar><jar.macro>使用相同的参数,但也会自动将pom.xml嵌入到jar中,并将Jenkins构建信息添加到清单中)。

我们还使用Jenkins作为我们的持续集成系统。我想做的一件事是清理每个构建的Ivy缓存,这样我们就不会因为缓存问题而出现任何jar问题。为此,我设置了我的ivysettings.xml文件,为每个Jenkins Executor定义一个单独的缓存:

代码语言:javascript
复制
<ivysettings>
    <property name="env.EXECUTOR_NUMBER" value="0" override="false"/>
    <caches
        defaultCacheDir="${ivy.default.ivy.user.dir}/cache-${env.EXECUTOR_NUMBER}"
        resolutionCacheDir="${ivy.dir}/../target/ivy.cache"/>
    <settings defaultResolver="default"/>
    <include file="${ivy.dir}/ivysettings-public.xml"/>
    <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
    <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
    <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
    <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>

我最初使用<ivy:settings>任务来配置我们与Ivy的项目。然而,所有的Jenkins executors都使用相同的Ivy缓存,这导致了问题。我从<ivy:settings>切换到<ivy:configure>,这个问题就消失了。显然,<ivy:configure>立即设置了Ivy (因此正确地设置了缓存),而<ivy:settings>直到调用<ivy:resolve>才设置Ivy。

我在Nabble上看到了一些关于<ivy:configure>被弃用的电子邮件(也许没有)。我在Ivy online文档中看不到任何关于<ivy:configure>被弃用的内容。

那么,什么时候你会使用<ivy:settings>而不是<ivy:configure>。在我的例子中,因为我需要为每个Jenkins executor单独缓存,所以我需要使用<ivy:configure>,但是我使用<ivy:settings>而不是<ivy:configure>有什么原因吗?而且,<ivy:configure>是否已被弃用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-18 07:34:15

这是我发现的:

  • <ivy:settings>较新,首选的way.
  • <ivy:configure>可能会被弃用,也可能不会被弃用。在调用<ivy:resolve>之前,
  • <ivy:settings>不会设置我的常春藤设置,而<ivy:configure>在任务执行后立即设置所有常春藤设置。

最后一个是我的问题。由于我正在进行并行Jenkins构建,并且我希望每个构建开始时都有一个完全干净的缓存,因此我根据Jenkins executor编号使用定制的缓存设置。缓存标记为cache-0cache-5

但是,由于在我调用<ivy:resolve>之前不会执行<ivy:settings>,所以我的自定义缓存设置不会被获取。我在调用Ivy resolve之前调用了<ivy:cleancache>,这会导致构建清理一个公共缓存。随之而来的是搞笑。使用<ivy:cofnfigure>解决了这个问题。

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

https://stackoverflow.com/questions/13610151

复制
相关文章

相似问题

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