0

2 つの取得を次々と呼び出そうとしています。

ivy_portlet.xml が存在する場合、2 番目の呼び出しは実行されません。

ivy_portlet.xml が存在しない場合、2 番目の呼び出しで 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 に答える