Ce que j'essaie de faire est de compiler un fichier qui prend sa version à partir d'une constante dans mes fichiers source.Impossible d'accéder à la propriété générée par un script dans une cible ANT importée
J'ai une configuration comme celui-ci (ou au moins les bits significatifs):
tâches/compile.xml
<project name="Compile">
<target name="check.version">
<script language="javascript">
regex = /VERSION.+?"([\d\.]+)";/;
r = new java.io.BufferedReader(new java.io.FileReader(new java.io.File(file)));
line = r.readLine();
while ((line = r.readLine()) != null) {
m = regex.exec(line);
if (m) {
project.setProperty("project.version" , m[1]);
break;
}
}
r.close();
</script>
<echo>${ant.project.name}-${project.version}</echo> <!-- = Fail-0.2 -->
</target>
</project>
et un build.xml:
<project name="Fail">
<import file="${basedir}/build/tasks/compile.xml"/>
<target name="test">
<antcall target="check.version">
<param name="file" value="${basedir}/Source.as"/>
</antcall>
<echo>${project.version}</echo> <!-- = ${project.version} -->
<echoproperties></echoproperties>
</target>
</project>
Ainsi, il semble que la propriété définie par le script n'est définie que localement dans cette cible, si je spécifie une autre cible dans le même projet ("Compile"), elle ne connaîtra pas non plus cette propriété.
J'ai également essayé de définir un dans le fichier XML "Compile" -project mais il ne sera pas écrasé par la cible de toute façon.
Alors, comment puis-je accéder à cette propriété générée par le script? Ou y a-t-il une autre façon de faire quelque chose comme ça? Je voudrais vraiment garder cette partie dans un fichier XML séparé car cela rend le script de construction du projet beaucoup plus propre.
Merci!
En outre, connaissez-vous des canaux IRC (avec des personnes) pour les questions relatives aux fourmis? –