IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ANT Java Discussion :

Question: Remplacement de tokens


Sujet :

ANT Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Question: Remplacement de tokens
    Bonjour à tous et merci d'avance pour votre aide.

    Mise en situation: Nous avons beaucoup de tokens à remplacer et très souvent nous ajoutons de nouveaux tokens à remplacer ce qui nous force à ajuster nos scripts et donc à sortir une nouvelle version de nos scripts à chaque nouveau token.

    Pour régler ce problème d'attente pour les développeurs voulant un nouveau token, nous avons décidés de mettre l'intelligence du remplacement de token directement dans les projets plutôt que dans nos scripts. C'est une bonne idée sauf que l'on ce heurte à un problème.

    Nous utilisons la task replace, comme suit:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <replace dir="${tokenize.dir}" summary="true" replacefilterfile="${build.dir}/all-tokens.properties">
                <!-- Excluding binary files and files that should not have tokens replaced -->
                <exclude name="all-tokens.properties"/>
                <exclude name="**/*.jar"/>
                <exclude name="**/*.class"/>
                <exclude name="**/*.gif"/>
                <exclude name="**/*.jsp"/>
                <exclude name="**/*.html"/>
                <exclude name="**/*.js"/>
                <exclude name="**/*.css"/>
    </replace>
    Notre fichier "all-tokens.properties" est un fichier concaténé à partir de différents fichiers "tokens.properties" qui sont eux-même des "replacefilterfile" des différents modules intégrés au module que l'on est en train de "construire" lorsque le remplacement de token se fait.

    Mon problème en détail:

    les fichiers tokens.properties et all-tokens.properties sont des replacefilterfile qui contiennent des pairs "token-valeur" qui ressemblent à:

    @TOKEN@=valeur1

    ce qui signifie que la string @TOKEN@ sera remplacé par la string valeur1. Ce que j'aimerais pouvoir faire c'est d'utiliser une paire "token-valeur" comme suit:

    @TOKEN@=${valeur1}

    et de faire en sorte que @TOKEN@ soit remplacé par la valeure de la propriété "valeur1" et non pas par la string ${valeur1} comme c'est le cas présentement.

    =========

    Je vois deux solutions possibles (mais je ne sais pas comment les réaliser):

    1) Soit il est possible dans le task <replace> de lui spécifier de remplacer les string de format ${valeur1} par la valeure des propriétés (si elles existent)

    ou

    2) Je fais un traitement sur mon fichier "all-tokens.properties" pour que les expressions regulières commencant par "${" et se terminant par "}" soit remplacées par la valeure de la propriété se trouvant entre le "${" et le "}" ?

    Suis-je clair ? Si vous avez besoin de précisions ne vous gênez pas ! Présentement je suis dans une impasse, je crois que je suis trop immersé dans le problème pour le voir simplement.

    Merci !

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Quelques précisions, étant donné que je continu de chercher (sans trouver)

    Dans le fond, ce que je cherche à faire est de prendre un fichier de propriété et de m'assurer que Ant interprète le ${ et le } et remplace ma propriete.

    Par exemple:

    j'ai la propriete <property name="foo" value="bar"/> qui est definie dans mon build file et j'ai un fichier de propriete (qui me sert de replacefilterfile pour mon task replace) qui contient des lignes qui ressemblent a:

    @FOO@=${foo}

    Je veux faire un traitement sur mon fichier de propriete (mon replacefilterfile) pour que la ligne precedente devienne:

    @FOO@=bar

    Des suggestions ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    J'ai trouvé ma solution. J'utilise un filterchain pour "étendre" mes properties comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <filterchain>
        <expandproperties/>
    </filterchain>
    Moi c'est dans une task <concat> que je fais ça.

    En espérant que ça peut aider d'autres personnes à utiliser un filtersfile dans la task replace tout en restant "dynamique" dans le remplacement des tokens.

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer un token dans un fichier texte
    Par DevServlet dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 18/03/2010, 18h24
  2. Réponses: 1
    Dernier message: 21/11/2009, 11h23
  3. [W3C] Question de débutant pour remplacement des frames
    Par Grizzzly dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 24/07/2009, 17h44
  4. question à propos de Token ring
    Par s-ehtp dans le forum Protocoles
    Réponses: 1
    Dernier message: 30/12/2007, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo