2010-11-29 60 views
1

Ce que je veux faire est de charger le contenu d'un fichier et l'envoyer à un compilateur mxmlc en tant que paramètre d'argument.
Je peux charger et lire le contenu d'un fichier en utilisant loadfile et en définissant une valeur property, par exemple propery="filecontent". Mais le problème est que je peux le passer dans le compilateur mxmlc (flex).
Je ne suis pas en mesure de passer (essayé avec ${filecontent}) au arg line. Son donne une erreur: "valeur contient un jeton inconnu" filecontent ""
Comment vais-je passer le contenu du fichier en tant que valeur d'argument à un argument du compilateur?
Modifier:
Le problème est avec les arguments include-resource-bundles. Lorsque vous utilisez la ligne de commande, cela fonctionne. Mais l'utilisation de la construction de fourmi ne fonctionne pas. Avons-nous besoin de fournir manuellement le nom des regroupements de ressources en générant le fichier de ressources?Charger une variable à partir d'un fichier et la transmettre en tant que valeur arg dans la construction ant

<exec executable="${MXMLC}" dir="${APP_ROOT}/src" > 
    <arg line="-locale 'en_US'"/> 
    .. .. .. 
    <arg line="-include-resource-bundles 'collections,components,containers,controls,core,effects,formatters,layout,modules,skins,states,styles'"/> 
    .. .. 

Je suis en train de remplacer les arguments par quelque chose comme:

... .... 
<loadfile property="resources" srcFile="${APP_ROOT}/src/resources.txt"/> 
... .... 
<exec executable="${MXMLC}" dir="${APP_ROOT}/src" > 
    ... 
    <arg line="-include-resource-bundles '${resources}'"/> 
    .... 
</exec> 

qui ne fonctionne pas et donne et erreur ->command line: Error: configuration variable 'include-resource-bundles' value contains unknown token 'resources'

Alors, comment automatiser cela?

+0

Pouvez-vous publier les parties pertinentes du fichier build.xml? a) où vous lisez le fichier b) où vous appelez mxmlc –

+0

okay, édité et ajouté plus de détails. – boring

Répondre

0

Il n'y a rien d'anormal dans le fichier de construction. Mais le message d'erreur suggère que ${resources} n'est pas défini lorsque vous appelez le compilateur MXMLC. Lorsqu'une propriété Ant n'est pas définie, le nom de la propriété (avec le symbole dollar et les accolades englobantes) est remplacé à la place de la propriété.

Pouvez-vous ajouter quelque chose comme

<echo message="Resources: ${resources}" /> 

après la « loadfile » pour vérifier que cette tâche fonctionne? Notez, par exemple, que si le fichier resources.txt est vide, la propriété ne sera pas définie.

+0

Lors de l'utilisation de l'écho, le contenu du fichier est renvoyé en écho. C'est en fait le stocker dans la variable. Juste que le compilateur mxmlc ne pouvait pas l'obtenir à partir de la variable de propriété. '-include-resource-bundles' accepte plusieurs noms de ressources lorsqu'il est utilisé en ligne de commande. Mais il semble que l'utilisation de la construction de fourmis ne soit pas capable d'utiliser comme ça. Un problème câblé. – boring