我试图一个接一个地调用2个。
当我的ivy_portlet.xml存在时,不会执行第二次调用。
当我的ivy_portlet.xml不存在时,第二个调用将检索ivy.xml的内容
当有2个文件时,只执行第一个文件。
我错过了什么?
<if>
<available file="${basedir}/ivy_portlet.xml" />
<then>
<echo message="Getting runtime portlet dependencies using Ivy project's configuration" />
<ivy:retrieve pattern="${project.lib.dir}/[conf]/[artifact]-[revision](-[classifier]).[ext]" file="${basedir}/ivy_portlet.xml"/>
</then>
</if>
<if>
<available file="${basedir}/ivy.xml" />
<then>
<echo message="Getting deps using Ivy project's configuration" />
<ivy:retrieve pattern="${project.lib.dir}/[conf]/[artifact]-[revision](-[classifier]).[ext]" file="${basedir}/ivy.xml"/>
</then>
</if>
答案 0 :(得分:0)
蚂蚁代码看起来很好,我甚至在本地测试它(没有常春藤检索任务)和两个if语句执行。当两个文件都存在且第一个常春藤检索触发时,检索是否成功完成而没有错误或失败?也许它因失败而短路。看到日志可以帮到这里。
答案 1 :(得分:0)
这就是诀窍:
当使用与ivy.xml不同的文件名时,必须进行解析调用。
<ivy:resolve file="${rpm.homedir}/Builder/ivy_portlet.xml"/>