親愛なる、私は現在、foreachループで設定されたプロパティの値を取得するためのいくつかの問題に直面しています。多分あなたの一人が私を助けることができます...
目的は、対応するjarが生成されてから、フォルダーの1つのファイルが変更されているかどうかを確認することです。このようにして、jarを再度生成する必要があるかどうかを知ることができます。私がやっていることは、foreachループでフォルダーを調べ、1つのファイルが私のテストに一致する場合は、プロパティをtrueに設定することです。
問題は、ループの後に変数が存在しないように見えることです...同じ問題がある単純化されたコード例を次に示します。
<target name="target">
<taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${lib.dir}/ant-contrib.jar"></taskdef>
<foreach target="setVar" param="var" list="a,b"/>
<echo>myreturn in target: ${env.myreturn}</echo>
<property name="env.myreturn" value="c"/>
<echo>myreturn in second: ${env.myreturn}</echo>
</target>
<target name="setVar">
<property name="env.myreturn" value="${var}"/>
<echo>myreturn in setVar: ${env.myreturn}</echo>
</target>
このコードの結果は次のとおりです。
target:
setVar:
[echo] myreturn in setVar: a
setVar:
[echo] myreturn in setVar: b
[echo] myreturn in target: ${env.myreturn}
[echo] myreturn in second: c
BUILD SUCCESSFUL
「setVar」ターゲットに出力できるため、変数は正しく設定されているようですが、呼び出し元のターゲットから値を取得する方法はありません。
また、プロパティに値を2回割り当てることはできないことも知っています。しかし、問題は発生しません...その場合は、プロパティの値を割り当てる前にチェックを追加して、まだ初期化されていないことを確認できます...
私が私の問題を解決する方法についての手がかりがありますか?
よろしくお願いします:)