Вопрос о задаче <foreach>и атрибуте failonerror - PullRequest
0 голосов
/ 24 мая 2010

Я создал файл сборки для автоматической компиляции файлов Oracle Forms.Ниже приведен фрагмент кода:

<target name="build" description="compiles the source code">

... 

  <foreach item="File" property="filename" failonerror="false" >
    <in>
      <items basedir="${source.directory}\${project.type}\Forms">
        <include name="*.fmb" />
      </items>
    </in>
    <do>
      <exec program="${forms.path}" workingdir="${source.directory}\${project.type}\Forms" commandline="module=${filename} userid=${username}/${password}@${database} batch=yes module_type=form compile_all=yes window_state=minimize" />
    </do>
  </foreach>

...

</target>

Файл компоновки перемещается в каталог, содержащий формы, которые пользователь желает компилировать, и пытается компилировать каждую форму.Атрибут failonerror имеет значение false, поэтому файл компоновки не завершается при возникновении ошибки компиляции.К сожалению, однако, хотя это предотвращает выход файла сборки при возникновении ошибки компиляции, он также заставляет файл сборки выйти из задачи.Это проблема, потому что, если форма, которая не компилируется успешно, не будет последней проверенной (на основе имени файла формы в алфавитно-цифровом порядке убывания), будет одна или несколько форм, которые файл сборки не пытается компилировать,Так, например, если папка, содержащая формы, которые необходимо скомпилировать, содержит 10 форм, и первая форма не компилируется успешно, файл компоновки не будет пытаться скомпилировать оставшиеся 9 форм (т.е. завершить задачу).Есть ли способ заставить файл сборки попытаться скомпилировать оставшиеся формы после столкновения после сбоя при компиляции формы?Заранее спасибо!

1 Ответ

0 голосов
/ 24 мая 2010

Извините, это теперь решено.Проблема в том, что вместо этого вам нужно установить «failonerror» в задаче.

...