0

以下のような値のリストを持つ ant パラメータがあります。

releases=release1,release2

以下の for ループを使用して値を処理します。

<for list="${releases}" param="release">
  <sequential>
    <echo>Processing @{release}</echo>
  </sequential>
<for>

@{release}=release2 の場合にのみ、以下のステートメントをエコーし​​たい

<echo>Processing last release</echo>

リスト項目のインデックスを取得する方法、またはそれが可能かどうかはよくわかりません。

前もってありがとう、バラジ

4

1 に答える 1

2

それで全部です?そして、あなたはすでにAnt-Contribタスクを使用しています。PropertyRegExタスクを見てください。それはあなたが望むことを正確に行うAnt-Contribタスクです:

<propertyregex property="last.release"
     input="${releases}"
     regexp=".*,(.*)"
     select="\1"/>

これは${last.release}、文字列の最後のリリースに設定されます。

nullであるか、正規表現と一致しない文字列に注意してください。Ant-Contribifタスクを使用して、次のことをテストできます。

<propertyregex property="last.release"
     input="${releases}"
     regexp=".*,(.*)"
     select="\1"/>
<if>
    <isset property="last.release"/>
    <then>
        <echo>The last release is ${last.release}</echo>
    </then>
    <else>
        <fail>Oops! Something didn't work...</fail>
    </else>
</if>
于 2012-09-11T13:37:55.660 に答える