如何使用Ant delete从pathid中删除

如何使用Ant delete从pathid中删除,ant,ivy,Ant,Ivy,我有一个超棒的任务,填充路径id <ivy:cachepath organisation="XXXX" module="ZZZZ" revision="0.2.4-SNAPSHOT" inline="true" pathid="mypath"/> 如果不编写复杂的Java代码,有没有办法将“mypath”转换为ant任务可以接受的内容?我真的很想删除这些缓存文件(我正在解决常春藤中的一个bug,它实际上不会重新获取快照).不明白您在尝试做什么。大多数ANT任务都接受类

我有一个超棒的任务,填充路径id

    <ivy:cachepath organisation="XXXX" module="ZZZZ" revision="0.2.4-SNAPSHOT" inline="true"  pathid="mypath"/>


如果不编写复杂的Java代码,有没有办法将“mypath”转换为ant任务可以接受的内容?我真的很想删除这些缓存文件(我正在解决常春藤中的一个bug,它实际上不会重新获取快照).

不明白您在尝试做什么。大多数ANT任务都接受类路径引用,这是ivy cachpath任务创建的。其次,从ivy缓存中删除文件似乎有点可疑……有点违背了使用ivy的目的:-)

但是你问了,所以我建议使用常春藤检索,如下所示:

  <ivy:retrieve pattern="${build.dir}/lib/[artifact](-[classifier]).[ext]">
     <dependency org="org.slf4j" name="slf4j-api" rev="1.7.5" conf="default"/>
     <dependency org="org.slf4j" name="slf4j-simple" rev="1.7.5" conf="default"/>
  </ivy:retrieve>

  <path id="mypath">
     <fileset dir="${build.dir}/lib" includes="*.jar"/>
  </path>

注:

  • 嵌套依赖项声明要求ivy>2.3.0
更新1 我怀疑你的常春藤“bug”获取快照实际上是你的常春藤设置文件的一个问题。只有解析器了解Maven跟踪快照的内部机制。有关更多信息,请阅读“m2compatible”和“useMavenMeta”选项

更新2 您是否将快照从ivy发布到像Nexus这样的Maven存储库中

是的…这是一个已知的问题。这里可能需要考虑的工作如下:

我的建议是,除非你需要使用Maven项目,否则不要发布快照。ivy有一个很棒的buildnumber任务,它使生成唯一的构建成为一个快照。不同的意见。

这对我很有用:

<path id="test">
    <pathelement path="${basedir}/foo"/>
    <pathelement path="${basedir}/bar"/>
</path>
<delete>
    <path refid="test"/>
</delete>


我没有使用
,但我确实创建了一个路径ID,并且能够使用路径作为refid删除各个元素。

我不想检索我想删除的内容。我如何删除“mypath”中列出的所有内容?部分问题是我的问题被“编辑”。我最初的问题是通过“mypath”“进入后处理的路径非常复杂。首先使用pathconvert将路径转换为属性,然后使用javascript(或其他第三方任务,如groovy)将属性拆分并重建新路径。。。。正如我在更新中所述,我高度怀疑您的根本原因有一个简单得多的解决方案。@user959690编辑没有改变这个问题。我只是添加了一个常春藤标签。你可以忽略常春藤部分。除了提供一个pathid之外,它对讨论来说并不是很重要。我只是想删除在“mypath”中填充的文件,我不是说不敏感,但是如果你想删除ANT路径的内容。。。为什么不使用另一个空路径呢。需要检查,但我认为路径的内容在ANT中是不变的。谢谢!就是这样!