0

OracleFormsファイルの自動コンパイル用のビルドファイルを作成しました。コードの抜粋は次のとおりです。

<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に設定されているため、コンパイルエラーが発生した場合にビルドファイルは終了しません。残念ながら、これにより、コンパイルエラーが発生したときにビルドファイルが終了できなくなりますが、ビルドファイルがタスクを終了するようにも見えます。これは問題です。正常にコンパイルされないフォームが最後にテストされる場合を除いて(英数字の降順のフォームのファイル名に基づく)、ビルドファイルがコンパイルを試行しないフォームが1つ以上存在するためです。 。したがって、たとえば、コンパイルするフォームを含むフォルダーに10個のフォームが含まれていて、最初のフォームが正常にコンパイルされない場合、ビルドファイルは、残りの9つのフォームをコンパイルしようとはしません(つまり、タスクを終了します)。フォームのコンパイルに失敗した後に遭遇した後、ビルドファイルが残りのフォームのコンパイルを試みるようにする方法はありますか?前もって感謝します!

4

1 に答える 1

0

申し訳ありませんが、これは現在解決されています。問題は、代わりにタスクに「failonerror」を設定する必要があることです。

于 2010-05-24T06:55:59.353 に答える