0

我试图一个接一个地调用 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>
4

2 回答 2

0

ant 代码看起来不错,我什至在本地对其进行了测试(没有 ivy 检索任务)并执行了两个 if 语句。当两个文件都存在并且第一次常春藤检索触发时,检索是否成功完成而没有错误或失败?也许它因故障而短路。在这里查看日志可能会有所帮助。

于 2012-10-18T03:26:19.817 回答
0

这是诀窍:

当使用与 ivy.xml 不同的文件名时,必须调用 resolve。

<ivy:resolve file="${rpm.homedir}/Builder/ivy_portlet.xml"/>
于 2012-10-18T13:26:40.727 回答