0

我们在远程存储库中有一些内部 jar,并且不经常构建它们。解析器如下所示:view-snapshots 是本地存储库,hub-releases 是共享存储库。

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

    </chain>

默认情况下,如果开发人员发布任何内容,它都会进入视图快照缓存。我们需要保留标志

先返回——“真”

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

谢谢

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

4

2 回答 2

2

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

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

<delete dir="${user.home}/.ivy2/cache/com.acme/foo" />
于 2013-06-25T20:37:48.167 回答
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 中轻松添加要从缓存和存储库中删除的特定文件夹。

于 2013-06-26T17:38:32.737 回答