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

Maven Java Discussion :

[Maven2] Lancer un plugin depuis un autre plugin


Sujet :

Maven Java

  1. #1
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut [Maven2] Lancer un plugin depuis un autre plugin
    Bonjour à toutes et à tous,

    J'ai développé mon propre plugin Maven2.
    J'aimerais savoir comment je peux faire pour qu'il puisse automatiquement lancer un autre plugin avant sa propre exécution.

    Dans mon cas, j'ai un plugin qui modifie le résultat de l'exécution du plugin eclipse. En gros, pour l'instant je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mvn eclipse:eclipse
    mvn monGroup:monPlugin:1.0:monGoal
    Ce que j'aimerais, c'est qu'au lieu de ça, il me suffise de lancer la commande mvn monGroup:monPlugin:1.0:monGoal, qui commencera par lancer la commande mvn eclipse:eclipse, puis s'exécutera ensuite.

    Une idée ?
    Cela peut soit se faire au niveau du pom du projet qui appelle mon plugin, soit au niveau du code du plugin.

    Merci pour votre aide.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  2. #2
    Membre éclairé Avatar de DanielW33
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 327
    Par défaut
    Je pense qu'en rebindant le plugin eclipse a une phase precedant la phase de ton plugin, tu arrivera au resultat que tu recherche

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bonjour et merci DanielW33 pour ta réponse.

    Cependant, je ne suis pas très sûr de la façon de faire cela.
    Comment dois-je écrire mon pom.xml exactement ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    A la lecture de cette page, il semblerait qu'avec Maven1, ce que je désire faire est possible via les decorators et les preGoals et postGoals.
    Cependant, ces fonctions n'existent plus dans Maven2, ce qui rend ma tâche plus difficile.

    Quelqu'un pour me confirmer qu'il n'y a pas de façon simple de résoudre mon problème ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Il faut attacher tes plugins à des phases dans le lifecycle de maven : http://maven.apache.org/guides/intro...lifecycle.html

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Merci evenisse pour ta réponse.

    Je sais, pour l'avoir testé ce matin, que cette solution fonctionne. Cependant, un détail me gêne : Dès que je vais exécuter quelque chose dans Maven, par exemple un mvn compile ou un mvn package, Maven va également mon plugin (et le plugin Eclipse).

    Or je n'ai pas besoin de cela ! Il n'y a effectivement pas de nécessité à relancer mvn eclipse:clean, mvn eclipse:eclipse puis mon plugin à chaque fois que l'on désire faire une compilation !

    D'où mon questionnement de savoir s'il est possible de lancer les goals du plugin eclipse dès que l'on exécute mon plugin...

    Mais vu mon précédent post, je commence à sérieusement en douter...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Je suis d'accord, il suffit simplement de déclarer ces plugins dans un profile que tu executeras quans tu le souhaiteras

  8. #8
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    evenisse, si je comprends bien ton idée :

    J'ajoute dans mon pom.xml :

    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
     
      ...
      <profiles>
        <profile>
          <id>xxx</id>
          <activation>
            <property>
              <name>activationParam</name>
              <value>ok</value>
            </property>
          </activation>
          <build>
            <plugins>
              <plugin>
                <!-- Appel au plugin Eclipse -->
                ...
              </plugin>
              <plugin>
                <!-- Appel à mon plugin -->
                ...
              </plugin>
            </plugins>
          </build>
        </profile>
      </profiles>
      ...
    et qu'ensuite, je tape la commande suivante :

    mvn -DactivationParam=ok compile

    (sachant que j'aurais lié le plugin Eclipse et le mien à la phase compile)

    C'est bien cela ?

    Le souci est qu'en fait, sur mon projet, on me tanne pour simplifier au maximum la commande à taper pour exécuter mon plugin. Et je suis sûr qu'on va me dire qu'il ne faut pas ajouter de paramètre à la commande...

    Toujours est-il que je te remercie pour cette idée, ça pourra me servir ailleurs...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  9. #9
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Pour information :

    Je viens de tester cette dernière solution, et de toute façon il y a un problème (sur le principe, cela fonctionne, pas de souci) :
    Lorsque eclipe:eclipse doit être lancé, j'ai ceci dans sur la console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    [INFO] Preparing eclipse:eclipse
    [WARNING] Removing: eclipse from forked lifecycle, to prevent recursive invocation.
    ...
    Du coup, le goal eclipse du plugin eclipse n'est pas exécuté...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    oui, c'est çà. en tout cas, c'est plus simple que "monGroup:monPlugin:1.0:monGoal"

    Tu n'es pas obliger d'utiliser le paramètre activationParam, la commande suivante est suffisante "mvn -Pxxx compile" avec xxx l'id du profile

  11. #11
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Citation Envoyé par romaintaz
    Pour information :

    Je viens de tester cette dernière solution, et de toute façon il y a un problème (sur le principe, cela fonctionne, pas de souci) :
    Lorsque eclipe:eclipse doit être lancé, j'ai ceci dans sur la console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    [INFO] Preparing eclipse:eclipse
    [WARNING] Removing: eclipse from forked lifecycle, to prevent recursive invocation.
    ...
    Du coup, le goal eclipse du plugin eclipse n'est pas exécuté...
    Ok, dans ce cas, je penses que tu vas être obligé d'ajouter le plugin eclipse au dépendances de ton plugin et hérité le mojo du plugin eclipse. Je ne vois pas d'autres solutions pour le moment.

Discussions similaires

  1. Accéder aux objets d'un plugin depuis un autre programme Java
    Par abdessami3e dans le forum Eclipse Platform
    Réponses: 6
    Dernier message: 27/12/2013, 18h11
  2. [Batch] Lancer un batch depuis un autre avec les variables du premier
    Par mr_samy81 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 08/04/2009, 15h40
  3. Réponses: 4
    Dernier message: 15/06/2007, 19h59
  4. Lancer une action depuis une autre action
    Par anaon dans le forum Struts 1
    Réponses: 6
    Dernier message: 04/08/2006, 19h38
  5. Réponses: 5
    Dernier message: 06/07/2006, 10h02

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