2010-12-03 48 views
4

Je convertis un script de génération existant de <mxmlc /> à <compc /> pour générer un swc.Utilisation des constantes du compilateur avec <compc /> ant tâche

Cependant, la construction échoue, ce qui donne l'erreur:

[compc] C:\xxxx\LogViewer.mxml(32): Error: Access of undefined property VERSION. 
[compc] 
[compc] private static const VERSION:String = CONFIG::VERSION; 

Dans ma tâche de fourmi, je donne les résultats suivants définis:

<compc compiler.as3="true" output="${output.dir}/${swc.name}.swc" incremental="true" fork="true" maxmemory="512m" compiler.show-deprecation-warnings="false"> 
     <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml" /> 
     <source-path path-element="${srcdir}" /> 
     <include-sources dir="${srcdir}" includes="*" /> 
     <external-library-path dir="${swc.libs.dir}" append="true"> 
      <include name="*.swc" /> 
     </external-library-path> 
     <external-library-path dir="${output.common.swc.dir}" append="true"> 
      <include name="*.swc" /> 
     </external-library-path> 
     <compiler.define name="CONFIG::VERSION" value="${build.version}" /> 
     <compiler.define name="CONFIG::RELEASE" value="${config.release}" /> 
     <compiler.define name="CONFIG::DEBUG" value="${config.debug}" /> 
     <compiler.define name="CONFIG::AUTOMATION" value="false" /> 
    </compc> 

Cette approche a bien fonctionné avec la tâche, mais il est maintenant échouer.

Quelle est la bonne façon d'utiliser les constantes du compilateur avec compc?

+0

J'ai rencontré le même problème et je blâme pour cela un bogue du compilateur mxmlc utilisé dans Flash Builder 4. – JabbyPanda

+0

Lorsque je compilais avec SDK Ant et Flex sans Flash Builder 4, je n'avais jamais rencontré cette erreur. Lorsque je compile en utilisant la tâche Ant dans Flash Builder 4 - ce n'est pas fiable, parfois la compilation fonctionne, parfois elle échoue, essayez de fermer et d'ouvrir le projet Flex dans ce cas, essayez de nettoyer le projet. – JabbyPanda

Répondre

1

nous faisons quelque chose semblable dans notre construction, et la seule différence que je vois est que nous n'avons pas le compilateur bit:

<define name="CONFIG::build" value="5" /> 
4

Les valeurs de chaîne doivent être mis entre guillemets simples. Par exemple:

<compiler.define name="CONFIG::VERSION" value="'${build.version}'" /> 

Les tâches Ant Flex sont vraiment incroyablement frustrant, principalement en raison du manque de documentation. J'ai lutté avec cela pendant un moment jusqu'à ce que je l'ai compris.

+0

Beau travail. Quelle douleur. – D3vtr0n