我有一个超级精彩的任务,填充路径ID ...
<ivy:cachepath organisation="XXXX" module="ZZZZ" revision="0.2.4-SNAPSHOT" inline="true" pathid="mypath"/>
如果没有编写复杂的Java代码,有没有办法将“mypath”转换为ant任务可以接受的东西?我真的很想删除这些缓存文件(我正在处理Ivy中的一个错误,它实际上并没有重新获取快照)。
答案 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>
注意:
我怀疑你的常春藤“bug”获取快照实际上是你的常春藤设置文件的一个问题。只有ibilio个解析器才能理解Maven跟踪快照的内部机制。有关“m2compatible”和“useMavenMeta”选项的更多信息,请阅读。
您是否正在将常春藤中的快照发布到像Nexus这样的Maven存储库中?
是的......这是一个众所周知的问题。可以考虑的可能的解决方法是:我的建议是避免快照发布,除非您需要使用Maven项目。常春藤有一个很棒的buildnumber任务,可以快速生成独特的构建。意见不同。