J'ai créé un fichier de compilation pour la compilation automatisée de fichiers Oracle Forms. Un extrait du code est le suivant:Question sur la tâche <foreach> et l'attribut failonerror
<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>
Le fichier de compilation accède à le répertoire contenant les formulaires que l'utilisateur désire et fo compilez tente de compiler chaque formulaire. L'attribut failonerror est défini sur false afin que le fichier de construction ne se ferme pas si une erreur de compilation se produit. Malheureusement, bien que cela empêche le fichier de construction de se terminer lorsqu'une erreur de compilation se produit, il semble également que le fichier de construction quitte la tâche. Ceci est un problème car, à moins que le formulaire qui ne compile pas soit le dernier à être testé (en fonction du nom de fichier du formulaire dans l'ordre alphabétique alphanumérique), il y aura une ou plusieurs formes que le fichier de construction ne tentera pas de compiler . Ainsi, par exemple, si le dossier contenant les formulaires que vous souhaitez compiler contient 10 formulaires et que le premier formulaire ne compile pas correctement, le fichier de construction ne tentera pas de compiler les 9 formulaires restants (c'est-à-dire quitter la tâche). Est-il un moyen de faire le fichier de construction tente de compiler les formulaires restants après avoir rencontré après avoir échoué à compiler un formulaire? Merci d'avance!