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 :

Utilisation du plugin cargo


Sujet :

Maven Java

  1. #1
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut Utilisation du plugin cargo
    Bonjour, je suis nouveau en maven et j'ai des questions sur le plugin cargo.
    J'utilise Tomcat comme container. En fait, je veux automatiser le lancement de mon container, déployer mon projet war et l'arreter après.
    J'ai tenté un mvn deploy. Il déploie bien mon archive war dans mon dossier webapps mais après il me sort une 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
     
    [lanfeust@waha view]$ mvn cargo:deploy
    [INFO] Scanning for projects...
    [INFO] Searching repository for plugin with prefix: 'cargo'.
    [INFO] ------------------------------------------------------------------------
    [INFO] Building view Maven Webapp
    [INFO]    task-segment: [cargo:deploy]
    [INFO] ------------------------------------------------------------------------
    [INFO] [cargo:deploy]
    [INFO] [stalledLocalDeployer] Deploying [/home/lanfeust/workspace/maven/view/target/view.war] to [/home/lanfeust/apache-tomcat-5.5.26/webapps]...
    [INFO] [yer.DeployerWatchdog] Deployable [http://localhost:8080/view/] failed to finish deploying within the timeout period [20000]. The Deployable state is thus unknown.
    [INFO] ------------------------------------------------------------------------
    [ERROR] FATAL ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] Deployable [http://localhost:8080/view/] failed to finish deploying within the timeout period [20000]. The Deployable state is thus unknown.
    [INFO] ------------------------------------------------------------------------
    [INFO] Trace
    org.codehaus.cargo.container.ContainerException: Deployable [http://localhost:8080/view/] failed to finish deploying within the timeout period [20000]. The Deployable state is thus unknown.
            at org.codehaus.cargo.container.spi.deployer.DeployerWatchdog.watch(DeployerWatchdog.java:111)
            at org.codehaus.cargo.container.spi.deployer.DeployerWatchdog.watchForAvailability(DeployerWatchdog.java:78)
            at org.codehaus.cargo.container.spi.deployer.AbstractDeployer.deploy(AbstractDeployer.java:63)
            at org.codehaus.cargo.maven2.DeployerDeployMojo.performDeployerActionOnSingleDeployable(DeployerDeployMojo.java:75)
            at org.codehaus.cargo.maven2.AbstractDeployerMojo.performDeployerActionOnAllDeployables(AbstractDeployerMojo.java:104)
            at org.codehaus.cargo.maven2.AbstractDeployerMojo.doExecute(AbstractDeployerMojo.java:47)
            at org.codehaus.cargo.maven2.AbstractCargoMojo.execute(AbstractCargoMojo.java:243)
            at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:493)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:463)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
            at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
            at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
            at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
            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.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
            at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
            at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
            at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 26 seconds
    [INFO] Finished at: Mon Jun 09 11:32:03 CEST 2008
    [INFO] Final Memory: 4M/10M
    [INFO] ------------------------------------------------------------------------

  2. #2
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    En regardant les logs, on voit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    failed to finish deploying within the timeout period [20000]. The Deployable state is thus unknown.
    Il semble y avoir un problème lié au fait que le déploiement est trop long ou qu'il ne s'arrête pas.

    Sinon tu peux toujours poser ta question sur le forum de cargo.

    Rémy

  3. #3
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut
    Salut rseM2, merci pour ta réponse. Juste une question, quand on fait un mvn cargo:deploy, il déploie l'archive war dans mon container et le lance. C'est ca?

  4. #4
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Il suffit de regarder la documentation qui est assez claire :
    cargo:deployer-deploy (aliased to cargo:deploy) : Deploy a deployable to a running container
    Pour démarrer un container, il faut utiliser la commande cargo:start.
    Pour arrêter un container, il faut utiliser la commande cargo:stop.

    Rémy

  5. #5
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut
    Citation Envoyé par rseM2 Voir le message
    Il suffit de regarder la documentation qui est assez claire :
    Pour démarrer un container, il faut utiliser la commande cargo:start.
    Pour arrêter un container, il faut utiliser la commande cargo:stop.

    Rémy
    Merci pour ta réponse,cher rémy.
    En fait, je voulais automatiser tout ca: lancer mon container, déployer mon archive et arreter le container. Dans mon pom.xml, j'ai "binder" mon plugin cargo à la phase pre-integration-test et je lui passe comme goal start (pour lancer mon container) et à la post-integration-test, je lui passe le goal stop.
    De sorte de que, qd je fais mvn install, il me lance mon container sans prob.
    Mon souci est au niveau du déploiment du war parce que mvn cargo:deploy déploie ton archive dans un container qui est déjà lancé.

    T'aurais pas une idée cmt faire?

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 116
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    je souhaite avoir des précisions sur Cargo.

    Cargo fait-il du déploiement à chaud ?

    Je m'explique, j'ai des fichiers jsp, java, css etc...

    Lorsque je modifie un fichier jsp je souhaiterais voir les modifications directement sur ma page web sans passer par le "mvn install" -> création du war de mon projet dans le répertoire target/ et le dépoiement de ce war sous JBoss, est-ce possible de s'en affranchir ???

    Cargo prend-il la compilation Maven en charge et le déploiement du war de mon projet sous le répertoire deploy de mon serveur JBoss ?

    J'en demande beaucoup je sais mais je pense que beaucoup de gens ont besoin de cette réponse...

    Quelqu'un peut-il m'éclairer ?

  7. #7
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Citation Envoyé par publicStaticVoidMain Voir le message
    Merci pour ta réponse,cher rémy.
    En fait, je voulais automatiser tout ca: lancer mon container, déployer mon archive et arreter le container. Dans mon pom.xml, j'ai "binder" mon plugin cargo à la phase pre-integration-test et je lui passe comme goal start (pour lancer mon container) et à la post-integration-test, je lui passe le goal stop.
    De sorte de que, qd je fais mvn install, il me lance mon container sans prob.
    Mon souci est au niveau du déploiment du war parce que mvn cargo:deploy déploie ton archive dans un container qui est déjà lancé.

    T'aurais pas une idée cmt faire?
    Désolé j'ai pas pu répondre avant.
    Je ne suis pas sur de bien comprendre le problème. Tu arrives à lancer et arrêter ton container. Donc si ton container est lancé, tu peux très bien ensuite déployer ton application via cargo. Tu peux éventuellement regarder cet exemple fourni par le projet cactus.

    Sinon certains projets, pour simplifier, ont une instance du container qui tourne et ne gère que le (re)déploiement.

    Rémy

  8. #8
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Citation Envoyé par vincent_17 Voir le message
    ,

    je souhaite avoir des précisions sur Cargo.

    Cargo fait-il du déploiement à chaud ?

    Je m'explique, j'ai des fichiers jsp, java, css etc...

    Lorsque je modifie un fichier jsp je souhaiterais voir les modifications directement sur ma page web sans passer par le "mvn install" -> création du war de mon projet dans le répertoire target/ et le dépoiement de ce war sous JBoss, est-ce possible de s'en affranchir ???

    Cargo prend-il la compilation Maven en charge et le déploiement du war de mon projet sous le répertoire deploy de mon serveur JBoss ?

    J'en demande beaucoup je sais mais je pense que beaucoup de gens ont besoin de cette réponse...

    Quelqu'un peut-il m'éclairer ?
    Pour le déploiement à chaud, on n'utilise généralement pas cargo mais plutôt le plugin jetty de mortbay. Regarde le goal jetty:run par exemple.

    Par contre, j'ai pas l'impression qu'il existe de plugin pour JBoss qui permette le déploiement à chaud (mais je ne connais pas bien JBoss).


    Rémy

  9. #9
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 116
    Points : 66
    Points
    66
    Par défaut
    Merci pour ta réponse rapide.

    Pourrais-tu me montrer un exemple de ton pom.xml avec jetty ?

    la déclaration suivante est à mettre dans le pom.xml du projet Maven - webapp n'est-ce pas ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	<plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>6.1.10</version>
            <configuration>
                    <webApp>${basedir}/target/ged-presentation-parametrage-0.0.1-SNAPSHOT.war</webApp>
            </configuration>
    	</plugin>
    j'ai défini la variable basedir comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <properties>
    	<basedir>.</basedir>
    </properties>
    comment s'en sers-t-on avec JBoss parce qu'en fait moi j'ai mon serveur JBoss qui tourne et lorsque je lance la commande :

    il me dit que le serveur Jetty est démarré mais bon j'ai déjà JBoss donc là c'est un peu confus pour moi ...

    Par contre il m'a bien créé un répertoire work dans target contenant tout ce qu'il faut, mais je ne vois pas le war correspondant si ce n'est la war crée lorsque je fais un maven install...

    Au secours...
    Quelqu'un peut m'éclairer ?

  10. #10
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Concernant jetty, si tu suis le standard pour le système de fichiers, il n'y a rien à faire. Il suffit de lancer mvn jetty:run sur le projet/module. Ensuite, tu configures le plugin dans le pom uniquement si tu as besoin (par exemple, modifier le contexte ou le port...).

    Sinon le plugin jetty n'a aucun lien avec JBoss. Jetty est un containeur J2EE "léger" (JSPs et servlets comme pour Tomcat). Tu peux éventuellement utiliser jetty juste pour développer tes jsps en deploiement à chaud. Et tu gardes JBoss et Cargo pour tester ton build complet (via un serveur d'intégration continue par exemple).

    Rémy

  11. #11
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 116
    Points : 66
    Points
    66
    Par défaut
    J'ai trouvé ce plugin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	<plugin>
    				<groupId>org.codehaus.mojo</groupId>
    				<artifactId>jboss-maven-plugin</artifactId>
    				<configuration>
    				<jbossHome>C:\jboss-4.2.0.GA</jbossHome>
    				<port>8080</port>
    				</configuration>
    			</plugin>
    lorsque je tappe la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mvn clean:clean package jboss:hardeploy
    il me nettoie le répertoire target/
    compile puis place le fichier war dans le répertoire deploy/ de mon serveur JBoss. Cela fonctionne bien.

    Mais ce n'est pas vraiment du déploiement à chaud encore car quand je modifie ma .jsp je suis toujours obligé de lancer cette commande pour que les modifications soient prises en compte...

    c'est pas encore ça mais je me rapproche

    On peux mettre cette commande en raccourci clavier sous Eclipse ???

  12. #12
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Pour les personnes qui sont intéressés par les tests fonctionnelles, vous pouvez aller voir le très bon article suivant : Functional testing with Maven, Cargo and Selenium.

    Rémy

Discussions similaires

  1. Problème d'utilisation du plugin cargo
    Par menzlitsh dans le forum Maven
    Réponses: 3
    Dernier message: 24/10/2008, 13h39
  2. [Pugin][jython] Eclipse 3.1.1 - utilisation du plugin jython
    Par eliselavy dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/03/2006, 17h47
  3. [Plugin] problème d'utilisation de plugin
    Par seiryujay dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 24/03/2006, 11h53
  4. [Plugin]utilisation du plugin rmi
    Par ahury dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 07/01/2006, 14h02
  5. [Debutant(e)]Utilisation des Plugins de Eclipse
    Par makohsarah dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 27/03/2005, 16h19

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