我有一个非常棒的任务,它填充了一个路径 id ......
<ivy:cachepath organisation="XXXX" module="ZZZZ" revision="0.2.4-SNAPSHOT" inline="true" pathid="mypath"/>
在不编写复杂的 Java 代码的情况下,有没有办法将“mypath”转换为 ant 任务可以接受的东西?我真的很想专门删除这些缓存文件(我正在解决 Ivy 中的一个错误,它实际上并没有重新获取快照)。
这对我有用:
<path id="test">
<pathelement path="${basedir}/foo"/>
<pathelement path="${basedir}/bar"/>
</path>
<delete>
<path refid="test"/>
</delete>
我没有使用<ivy:cachepath/>
,但我确实创建了一个路径 ID,并且能够使用路径作为 refid 删除各个元素。
不明白你想做什么。大多数 ANT 任务接受类路径引用,这是 ivy cachpath 任务创建的。其次,从常春藤缓存中删除文件似乎是可疑的......有点违背了使用常春藤的目的:-)
但是你问了,所以我建议使用 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>
笔记:
我怀疑您的常春藤“错误”获取快照实际上是您的常春藤设置文件的问题。只有ibilio解析器了解 Maven 跟踪快照的内部机制。有关“m2compatible”和“useMavenMeta”选项的更多信息,请阅读。
您是否将常春藤中的快照发布到像 Nexus 这样的 Maven 存储库中?
是的...这是一个已知问题。要考虑的可能解决方法如下:
我的建议是避免快照发布,除非您需要使用 Maven 项目。ivy 有一个很棒的 buildnumber 任务,它可以让生成独特的 build 变得轻而易举。意见不一。