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 :

[ANT] affectation de variables dans une boucle


Sujet :

ANT Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut [ANT] affectation de variables dans une boucle
    Salut tous,

    Quand je boucle sur une liste en ANT, mes variables sont bien affectées à la première itération mais à la seconde elles conservent la première valeur.

    Voici ma liste (dans un fichier property) :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <ejb.list  value="facade,met.accesreseauxlies,met.modificationmasse"/>

    Voici ma boucle :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        <target name="ejb.generate.all" >
            <for list="${ejb.list}" param="ejb">
              <sequential>
                <echo >@{ejb}</echo>
     
                  <property name="ejb.name" value="${@{ejb}.name}" />
                  <property name="ejb.desc" value="${@{ejb}.desc}" />
     
                  <antcall target="ejb.generate" />
              </sequential>
            </for>
        </target>
    Voici ma tâche ejb.generate qui affiche mes variables :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <target name="ejb.generate" >
            <echo> Building ${ejb.name} EJB into ${ejb.desc}.jar</echo>
    </target>

    A la première itération ejb.generate m'affiche "facade" et à la seconde... aussi !

    Si quelqu'un a une idée sur la question ça m'aidera beaucoup.

    Merci tt le monde,
    ArNo

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    C'est tout à fait normal. En fait les property de ANT ne sont pas des variables, mais se comportent plutôt comme des constantes : leur valeur n'est pas redéfinissable.

    Pour ton problème, il ne faut pas définir les property "ejb.name" et "ejb.desc" au sein de ta boucle (la portée est alors de niveau du target) mais les passer sous forme de paramètre à une autre target : "ejb.generate" par exemple si il s'agit d'une tache définie par toi, sinon il faut passer par une tâche intermédiaire.

    Jacques Desmazières

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Merci, je ne savais pas que les properties étaient considérées comme des constantes.

    Pour ton problème, il ne faut pas définir les property "ejb.name" et "ejb.desc" au sein de ta boucle (la portée est alors de niveau du target) mais les passer sous forme de paramètre à une autre target : "ejb.generate" par exemple si il s'agit d'une tache définie par toi, sinon il faut passer par une tâche intermédiaire.
    J'ai beau chercher, je ne vois pas comment les passer en paramètre à mon autre target.

    Pourrais tu me donner plus de précisions, un lien ou un exemple stp.

    Merci d'avance.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Il fallait faire :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <antcall target="ejb.session.generate" >
                      <param name="ejb.name" value="${@{ejb}.name}" />
                      <param name="ejb.desc" value="${@{ejb}.desc}" />
                  </antcall>

    Et wala.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    J'utilise Ant 1.6.5, et la tâche 'for' n'existe pas.
    Quelle est la solution pour faire une boucle dans un fichier ANT ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Télécharge l'add-on ant-contrib (le lien est sur le site de ant). Une fois que tu l'auras utilisé tu ne pourras plus t'en passer

    Jacques Desmazières

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    j'ai moi aussi la version 1.6.5 de Ant. Et j'ai le même message d'erreur pour le for...
    Ceci étant j'ai bien ajouté le ant-contrib, car je peux utiliser foreach...
    Du coup, je ne comprends plus très bien!

    Quelqu'un aurait-il l'explication?

    Merci par avance !!

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

Discussions similaires

  1. Problème d'affectation de variable dans une boucle
    Par gabbf29 dans le forum Général Java
    Réponses: 28
    Dernier message: 03/10/2013, 13h11
  2. Mauvaise affectation de variable dans une boucle
    Par Isiker dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/10/2009, 00h42
  3. [SQL] Affectation d'une variable dans une boucle
    Par monlam dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/10/2007, 14h41
  4. Réponses: 3
    Dernier message: 01/09/2005, 11h56
  5. [langage] incrementation de variable dans une boucle
    Par mimilou dans le forum Langage
    Réponses: 15
    Dernier message: 16/04/2004, 13h23

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