我已经为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个表单(即退出任务)。有没有办法让构建文件尝试在遇到无法编译表单后遇到剩余的表单?提前谢谢!
答案 0 :(得分:0)
道歉,这已经解决了。问题是你需要在任务中设置“failonerror”。