如何使用Ant delete从pathid中删除

时间:2013-07-16 18:49:14

标签: ant ivy

我有一个超级精彩的任务,填充路径ID ...

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

如果没有编写复杂的Java代码,有没有办法将“mypath”转换为ant任务可以接受的东西?我真的很想删除这些缓存文件(我正在处理Ivy中的一个错误,它实际上并没有重新获取快照)。

2 个答案:

答案 0 :(得分:1)

这对我有用:

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

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

答案 1 :(得分:0)

不明白你想做什么。大多数ANT任务都接受类路径引用,这是常春藤cachpath任务创建的。其次从常春藤缓存中删除文件似乎是可疑的...排序使用常春藤的目的: - )

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

  <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>

注意:

  • 嵌套依赖声明需要常春藤&gt; 2.3.0

更新1

我怀疑你的常春藤“bug”获取快照实际上是你的常春藤设置文件的一个问题。只有ibilio个解析器才能理解Maven跟踪快照的内部机制。有关“m2compatible”和“useMavenMeta”选项的更多信息,请阅读。

更新2

您是否正在将常春藤中的快照发布到像Nexus这样的Maven存储库中?

是的......这是一个众所周知的问题。可以考虑的可能的解决方法是:

我的建议是避免快照发布,除非您需要使用Maven项目。常春藤有一个很棒的buildnumber任务,可以快速生成独特的构建。意见不同。