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 :

Faire un Jar à partir des sources d'un WAR


Sujet :

Maven Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Faire un Jar à partir des sources d'un WAR
    Bonjour,

    Un de nos projets souhaite utiliser les sources d'une autres applications WEB (A) dans sa propre application Web (B). Actuellement, ce projet récupère les sources du projet WEB (A) pour en faire un JAR qu'il ajoute dans la lib son application web (B).

    Comment faire cela de façon automatique avec Maven sachant que l'on génère déjà le WAR de l'application web (A) avec Maven ?

    Merci à tous et toutes de vos réponses.

  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,

    A priori le mécanisme de war overlays semble répondre à ton besoin.

    Rémy

  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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Citation Envoyé par rseM2 Voir le message
    Bonjour,

    A priori le mécanisme de war overlays semble répondre à ton besoin.

    Rémy
    C'est pas forcément sûr.
    Le problème du war overlay, c'est qu'il va copier tout ce que contient le war A avant de créer le war B, donc aussi bien les classes Java (ce qu'il semble vouloir), mais aussi tous les autres fichiers (ressources, pages web, etc.). Et là, ce n'est pas nécessairement ce qu'il souhaite faire !

    Cela reste cependant une piste à explorer !

    Edit: Quoiqu'avec les possibilités d'include / exclude, on peut arriver à ce qu'il veut !
    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
    ndp
    ndp est déconnecté
    Membre actif Avatar de ndp
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 227
    Points : 255
    Points
    255
    Par défaut
    Salut,

    tu as besoin de la totalite des sources du projet Web(A)??
    Est-ce que tu n'as besoin que de quelques composants de projet Web(A)?

    Dans le deuxieme cas:
    Une facon de faire (mais qui peut etre lourde), est de redefinir ton projet en y introduisant des modules pour les composants que tu veux partager.

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    Le plus propre 3 modules : JAR + WAR A + WAR B
    En trichant :
    http://maven.apache.org/plugins/mave....html#attached
    Tu demandes a Maven de générer un jar à partir du code du WAR A.

  6. #6
    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
    En fait, il faut voir à quoi correspond le terme source
    • Si c'est justes les classes java + fichiers de propriétés par exemple, ce que propose Arnaud semble effectivement le mieux ;
    • Si c'est plus générale comme les jsps, images, WEB-INF... en plus des classes java (ce que je pensais au début), il faut sans doute se tourner vers le war-overlays. D'où ma première réponse.


    Rémy

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Référence au JAR créé
    Merci pour vos réponse.

    J'ai donc utilisé l'option suivante dans le plugin BuilD War :
    <attachClasses>true</attachClasses>

    Ca me créé bien la jar à partir des sources de la WebApp.
    Par contre il me le positionne dans le repository local au même endroit que le WAR avec un suffixe -classes.jar
    Ok.
    Mais comment y faire référence dans les dependency de mon autre projet.
    J'ai tenté de mettre le group id et l'artifact id du war d'origine mais en précisant le type jar mais il ne trouve pas....

    Une idée ?

  8. #8
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    si ca se termine par -classes il faut que dans ta dépendance tu ajoutes un classifier :

    <dependency>
    <groupId>truc</groupId>
    <artifactId>machin</artifactId>
    <version>chose</version>
    <classifier>classes</classifier>
    </dependency>

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Merci
    Bonjour,

    <classifier>classes</classifier>

    a effectivement réglé mon problème.
    Merci à tous et toutes pour votre aide.

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

Discussions similaires

  1. construire un jar à partir des sources d'une API
    Par Phonatacid dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 20/09/2010, 12h12
  2. [Maven2] Créer un jar à partir des sources
    Par Sniper37 dans le forum Maven
    Réponses: 3
    Dernier message: 25/08/2006, 14h36
  3. [Tomcat]Lancer tomcat dans l'IDE à partir des sources.
    Par goony dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 09/03/2006, 13h44
  4. [UML] Générer un diagramme de classe à partir des sources
    Par ekard dans le forum EDI et Outils pour Java
    Réponses: 5
    Dernier message: 18/01/2006, 16h13

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