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 :

Probleme suivant le tutoriel maven first MOJO


Sujet :

Maven Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 95
    Points : 46
    Points
    46
    Par défaut Probleme suivant le tutoriel maven first MOJO
    Bonjour, je suis en train d essayer de créer un plugins pour maven, pour cela je commence par faire le tuto de plugins présent ici :

    http://maven.apache.org/guides/plugi...velopment.html

    J'ai donc executer ces lignes de commandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mvn archetype:create -DgroupId=sample.plugin -DartifactId=maven-hello-plugin
    Ensuite dans ma page JAVA, j'ai mis ce code :
    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
    package sample.plugin;
     
    import org.apache.maven.plugin.AbstractMojo;
    import org.apache.maven.plugin.MojoExecutionException;
     
    /**
     * Says "Hi" to the user.
     * @goal sayhi
     */
    public class GreetingMojo extends AbstractMojo
    {
        public void execute() throws MojoExecutionException
        {
            getLog().info("Hello, world.");
        }
    }
    Ensuite j'ai mis ceci 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
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>sample.plugin</groupId>
      <artifactId>maven-hello-plugin</artifactId>
      <packaging>maven-plugin</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>maven-hello-plugin</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-plugin-api</artifactId>
          <version>2.0</version>
        </dependency>
      </dependencies>
      <build>
        <plugins>
         <plugin>
          <groupId>sample.plugin</groupId>
          <artifactId>maven-hello-plugin</artifactId>
          <version>1.0-SNAPSHOT</version>
         </plugin>
        </plugins>
      </build>
    </project>
    Et pour finir je lance cette ligne de commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mvn sample.plugin:maven-hello-plugin:1.0-SNAPSHOT:sayhi
    Et j'ai ce log :
    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
     
    [INFO] Scanning for projects...
    [INFO] Cannot find mojo descriptor for: 'sample.plugin:maven-hello-plugin:1.0-SNAPSHOT:sayhi' - Treating as non-aggregator.
    [INFO] ----------------------------------------------------------------------------
    [INFO] Building maven-hello-plugin
    [INFO]    task-segment: [sample.plugin:maven-hello-plugin:1.0-SNAPSHOT:sayhi]
    [INFO] ----------------------------------------------------------------------------
    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] A required plugin was not found: Plugin could not be found - check that the goal name is correct: Unable to download the artifact from any repository
     
    Try downloading the file manually from the project website.
     
    Then, install it using the command:
        mvn install:install-file -DgroupId=sample.plugin -DartifactId=maven-hello-plugin \
            -Dversion=1.0-SNAPSHOT -Dpackaging=maven-plugin -Dfile=/path/to/file
     
     
      sample.plugin:maven-hello-plugin:maven-plugin:1.0-SNAPSHOT
     
    from the specified remote repositories:
      central (http://repo1.maven.org/maven2)
     
      sample.plugin:maven-hello-plugin:maven-plugin:1.0-SNAPSHOT
     
    from the specified remote repositories:
      central (http://repo1.maven.org/maven2)
     
    [INFO] ------------------------------------------------------------------------
    [INFO] For more information, run Maven with the -e switch
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: < 1 second
    [INFO] Finished at: Fri Feb 02 11:05:02 CET 2007
    [INFO] Final Memory: 1M/2M
    [INFO] ------------------------------------------------------------------------
    Je ne comprend pas ce que cela veut dire, si vous avez une idée n'hésitez pas.
    Merci

  2. #2
    Membre expérimenté

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    Commande à lancer pour la crétion d'un plugin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mvn archetype:create -DgroupId=sample.plugin -DartifactId=maven-hello-plugin -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-mojo
    => ajouter le mojo GreetingMojo.java dans maven-hello-plugin/src/main/java/sample/plugin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    cd maven-hello-plugin
    mvn clean install
     
    cd repertoire_duprojet_qui_utilise_le_plugin
    mvn sample.plugin:maven-hello-plugin:1.0-SNAPSHOT:sayhi
    mvn sample.plugin:maven-hello-plugin:sayhi
    Il n'est pas nécessaire d'ajouter ton plugin à ton pom projet si tu n'as pas de configuration à faire dessus, mais tu dois l'ajouter si tu veux definir la phase d'exécution.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 95
    Points : 46
    Points
    46
    Par défaut
    Ok merci tout compile correctement.

    Maintenant, comment exectuer mon fichier GreetingMojo.java ?
    J'ai vu dans la doc cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp target/maven-hello-plugin-1.0-SNAPSHOT.jar sample.plugin.MyMojo
    Mais cela me retourne encore une erreur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/maven/plugin/AbstractMojo
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
    et si je lance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp target/maven-hello-plugin-1.0-SNAPSHOT.jar sample.plugin.GreetingMojo
    Sa me retourne cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "main" java.lang.NoClassDefFoundError: sample/plugin/GreetingMojo
    Merci

  4. #4
    Membre expérimenté

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    Je ne sais pas où tu as vu qu'il fallait exécuter java -classpath... pour lancer un mojo, mais pas dans la doc de Maven
    Un plugin s'ecécute avec mvn et les lignes de commande que j'ai mis ci-dessus sont les seules à utiliser pour compiler ton plugin et ensuite l'exécuter dans ton projet

  5. #5
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 95
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par evenisse
    Commande à lancer pour la crétion d'un plugin:
    [
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    cd maven-hello-plugin
    mvn clean install
     
    cd repertoire_duprojet_qui_utilise_le_plugin
    mvn sample.plugin:maven-hello-plugin:1.0-SNAPSHOT:sayhi
    mvn sample.plugin:maven-hello-plugin:sayhi
    Pour tu m expliquer ce que fait chaque ligne, car j 'ai un peu de mal a capter comment fonctionne maven, malgré les nombreuses doc que j'ai lu.

    Merci

  6. #6
    Membre actif Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Points : 226
    Points
    226
    Par défaut
    c'est relativement simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cd maven-hello-plugin
    mvn clean install
    tu te positonnes dans le repertoire de dev de ton plugin
    ensuite le mvn clean install va effectuer toutes les étapes du cycle par défaut jusqu'à installer ton plugin dans ton repository locale

    ensuite tu peux utiliser ton plugin dans un autre projet
    donc dans ton nouveau projet, tu configures ton pom :

    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
     
    ...
    <build>
        <plugins>
         <plugin>
          <groupId>sample.plugin</groupId>
          <artifactId>maven-hello-plugin</artifactId>
          <version>1.0-SNAPSHOT</version>
          <executions>
    	<execution>
    		<goals>
    			<goal>clean</goal>
    		</goals>
    	</execution>
          </executions>
         </plugin>
        </plugins>
      </build>
    ....
    Ensuite tu te mets à la racine de ce projet et soit tu tapes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mvn sample.plugin:maven-hello-plugin:sayhi
    et tu n'executes que le goal sayhi de ton plugin

    soit tu tapes
    et tu verras s'éxecuter entre autres ton plugin car tu l'as configuré pour qu'il s'execute pendant la phase clean

    j'espere avoir été clair

  7. #7
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 95
    Points : 46
    Points
    46
    Par défaut
    Parfaitement clair.
    Merci beaucoup

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par david.vicente@tiscali.fr
    c'est relativement simple


    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
     
    ...
    <build>
        <plugins>
         <plugin>
          <groupId>sample.plugin</groupId>
          <artifactId>maven-hello-plugin</artifactId>
          <version>1.0-SNAPSHOT</version>
          <executions>
    	<execution>
    		<goals>
    			<goal>clean</goal>
    		</goals>
    	</execution>
          </executions>
         </plugin>
        </plugins>
      </build>
    ....
    [...]
    et tu verras s'éxecuter entre autres ton plugin car tu l'as configuré pour qu'il s'execute pendant la phase clean

    j'espere avoir été clair
    Bonjour,

    Je sais que ce post date, mais je suis tombé dessus en effectuant des recherches. Et je me demandais si ce n'était pas plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <executions>
    	<execution>
    		<goals>
    			<goal>sayhi</goal>
    		</goals>
    	</execution>
          </executions>
    pour spécifier que ce Goal s'executera lors de la phase qui a été spécifée dans le code au moyen des annotations "@phase <nom_phase>"

    Alors que là, normalement cela devra provoquer error, car il essaye d'executer la méthode clean du plugin...

  9. #9
    Membre actif Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Points : 226
    Points
    226
    Par défaut
    tout à fait.

    excusez-moi pour cet erreur

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

Discussions similaires

  1. [AC-2002] Probleme suite utilisation Tutoriel Formulaire de recherche
    Par jilow dans le forum VBA Access
    Réponses: 3
    Dernier message: 29/09/2009, 09h39
  2. [M2ECLIPSE] probleme avec le plugin maven-clean-plugin
    Par DanielW33 dans le forum Maven
    Réponses: 6
    Dernier message: 28/05/2007, 19h16
  3. Réponses: 18
    Dernier message: 23/08/2006, 09h42
  4. Réponses: 3
    Dernier message: 16/06/2006, 16h54

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