常春藤cleancache但具体文件夹

时间:2013-06-25 16:01:26

标签: ant ivy

我们在远程存储库中有一些内部jar并且不经常构建它们。解析器看起来像这样:view-snapshots是一个本地repo,hub-releases是一个共享的repo。

    <chain name="hub-internal-library-chain" returnFirst="true">
        <resolver ref="view-snapshots"/>
        <resolver ref="hub-releases"/>

    </chain>

默认情况下,如果开发人员发布任何内容,则会转到view-snapshots cache.We需要保留标志

  

首先返回 - “真实”

表示性能问题。所以我想删除缓存(本地)和存储库(本地)中的一些特定文件。我是常春藤的新手,任何帮助都将不胜感激。

由于

PS:我已经看过这个类似于我的问题。但是它还没有解决。 http://grokbase.com/t/ant/ivy-user/105d2bxpyy/refreshing-ivy-cache-after-changing-a-published-version

2 个答案:

答案 0 :(得分:2)

Ivy中没有专用代码可以删除缓存中只有一个模块的条目。

但是使用常规Ant任务很容易。假设你有默认模式的默认缓存,这里有一段build.xml,它将删除公司foo模块com.acme的缓存:

<delete dir="${user.home}/.ivy2/cache/com.acme/foo" />

答案 1 :(得分:0)

这个适合我的解决方案:

  <target name="clear-entries" if="clean-selected-cache" depends="clear-cache,clear-  repository">
    <echo>Clearing cache and repository entries for internal libraries</echo>
   </target>

<target name="clear-cache">
  <delete verbose="true">
    <fileset dir="${ivy.view-local.cache.root}">
      <includesfile name="path.to.file/clear-cache.includes.txt"/>
    </fileset>
   </delete>
</target>

<target name="clear-repository">
  <delete verbose="true">
    <fileset dir="${ivy.view-local.repository.root}">
      <includesfile name="path.to.file/clear-cache.includes.txt"/>
    </fileset>
  </delete>
</target>

您可以在clear-cache.includes.txt中轻松地从缓存和存储库中添加要删除的特定文件夹。