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 :

Réutiliser des Tasks dans une Custom Task


Sujet :

ANT Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Réutiliser des Tasks dans une Custom Task
    Bonjour à tous

    Ma question est assez simple.. je suis en train d'écrire une Custom Task faisant plein de traitements java, or, à un moment, j'ai besoin de "zipper" un répertoire ou d'en créer un nouveau.

    Je me suis dit alors "pourquoi réinventer la roue" : je vais faire appel aux tasks de ant qui sont déjà définies... Ca marche pour le MkDir, mais absolument pas pour le Zip :/
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public void execute() throws BuildException{
        // D'autres traitements java ...
     
        Mkdir tMkDir = new Mkdir(); 
        tMkDir.init(); 
        tMkDir.setDir(destDir); 
        tMkDir.execute();
     
        Zip tZip = new Zip();
        tZip.init();
        tZip.setDestFile(archiveFile);
        tZip.addZipfileset(zipFileSet);
        tZip.perform();
     
        // D'autres traitements java ...
    }
    destDir, archiveFile et zipFileSet sont des paramètres que j'ai setté à ma custom task ... pas de problèmes là dessus ...

    Lors de l'execution, avec un verbose, je récupère l'exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    BUILD FAILED
    E:\Taf\eclipse workspace\Maintenance\build.xml:9: java.lang.NullPointerException
            at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:115)
            at org.apache.tools.ant.Task.perform(Task.java:348)
            at org.apache.tools.ant.Target.execute(Target.java:357)
            at org.apache.tools.ant.Target.performTasks(Target.java:385)
            at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
            at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
            at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
            at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
            at org.apache.tools.ant.Main.runBuild(Main.java:698)
            at org.apache.tools.ant.Main.startAnt(Main.java:199)
            at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
            at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    Caused by: java.lang.NullPointerException
            at org.apache.tools.ant.Task.perform(Task.java:344)
            at maintenancetasks.Dump.execute(Dump.java:118)
            at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
            ... 11 more
    --- Nested Exception ---
    java.lang.NullPointerException
            at org.apache.tools.ant.Task.perform(Task.java:344)
            at maintenancetasks.Dump.execute(Dump.java:118)
            at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
            at org.apache.tools.ant.Task.perform(Task.java:348)
            at org.apache.tools.ant.Target.execute(Target.java:357)
            at org.apache.tools.ant.Target.performTasks(Target.java:385)
            at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
            at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
            at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
            at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
            at org.apache.tools.ant.Main.runBuild(Main.java:698)
            at org.apache.tools.ant.Main.startAnt(Main.java:199)
            at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
            at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
     
    Total time: 1 second
    (à noter que la ligne 118 de mon fichier (Dump.java) correspond à la ligne ou je fais le perform de mon instance de Zip)

    Je suppose qu'il doit y avoir un problème d'initialisation de contexte, ou un truc dans le genre... Je sais pas si certains ont déjà rencontré le problème... mais ca me paraît bizarre puisque ma méthode marche tres bien avec la task MkDir (mon répertoire est bien créé !!)

    Merci d'avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    En regardant un peu les sources de ant, et notamment les source de la classe Zip, je me suis apercu que mon NullPointerException était lancé à cause du getPoject() appelé dans une méthode de la classe Zip.

    Etant donné que la task Zip a été initialisée "a la main", j'étais donc bien sur la bonne piste quand je disais que c'était un probleme d'initialisation.
    En rajoutant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tZip.setProject(getProject());
    Juste après l'instanciation de mon Zip, tout fonctionne correctement

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

Discussions similaires

  1. [SP-2007] Récupérer les checkboxes cochées dans une custom task
    Par nostaze dans le forum SharePoint
    Réponses: 0
    Dernier message: 21/05/2012, 16h21
  2. [1.x] Utilisation des helpeurs dans une task
    Par stephanegib2 dans le forum Symfony
    Réponses: 6
    Dernier message: 29/07/2011, 17h55
  3. Réutilisation des classes dans une autre application
    Par ichida dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/05/2010, 23h41
  4. Réutiliser des données d'une requête dans une requête
    Par mims1664 dans le forum Requêtes
    Réponses: 12
    Dernier message: 06/02/2009, 14h12
  5. Réponses: 9
    Dernier message: 19/02/2007, 20h33

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