Итак, вот ситуация. У меня есть цель с именем ErrorHelp
, которая принимает значение exitCode
и передает его в функцию, которая распечатывает сообщение на основе этого значения. Каждая из множества других целей имеет exitCode
в качестве своего resultproperty
, поэтому говорят, что они выходят с кодом 4, тогда exitCode
равно 4 и ErrorHelp
передает значение 4.
Бег, например,
>> Target1 ErrorHelp
дает правильное значение ErrorHelp
. Однако возьмем следующую ситуацию. Я запускаю Target1
таким образом, чтобы знать, что он вернет значение 1; Я запускаю Target2
таким образом, что знаю, что он вернет 2. Можно было бы надеяться, что запущенный
>> Target1 Target2 ErrorHelp
приведет к запуску ErrorHelp со значением 2; это не тот случай, и вместо этого выполняется значение 1. Может ли вторая цель в той же строке не сбросить значение exitCode
? Если нет, есть ли способ добиться того, что я пытаюсь сделать?
ИЗМЕНИТЬ - укажите код:
Скажем, Target1
определяется как
<target name="Target1">
<java classname="path_to_file/Target1" fork="true" resultproperty="exitCode">
<classpath>
<path location="path_to_jar/required_jar.jar"/>
</classpath>
</java>
<antcall target="ErrorHelp"/>
</target>
и Target2
<target name="Target2">
<java classname="path_to_file/Target2" fork="true" resultproperty="exitCode">
<classpath>
<path location="path_to_jar/required_jar.jar"/>
</classpath>
</java>
<antcall target="ErrorHelp"/>
</target>
(идентичен по структуре, но вызывает другой файл Java). ErrorHelp
тогда будет
<target name="ErrorHelp">
<java classname="path_to_file/ErrorCodeHelp" fork="true">
<classpath>
<path location="path_to_jar/required_jar.jar"/>
</classpath>
<arg value="-exitcode=${exitCode}"/>
</java>
</target>
В ситуации, когда я звоню
>> Target1 Target2 ErrorHelp
зная, что Target1
возвращает 1, а Target2
возвращает 2, ErrorHelp
распечатывает сообщение для значения 1, а не 2, как я ожидал.