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 :

[Maven 2.x] Regrouper ses classes dans un JAR pour un WAR.


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 : 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 [Maven 2.x] Regrouper ses classes dans un JAR pour un WAR.
    Bonjour à tou(te)s,

    (désolé, mon titre ne doit pas être très explicite)
    J'ai une application qui se présente sous la forme d'un WAR.
    Quand je compile mon projet, j'obtiens donc un WAR (logique). Mais ce que j'aimerais, c'est que toutes les classes compilées soient stockées dans un fichier jar, et non laissées dans le répertoire WEB-INF/classes/, comme cela est fait par défaut.

    Pour être plus clair, aujourd'hui j'ai ça :

    WEB-INF/classes/
    WEB-INF/classes/com/maboite/monprojet/Bidule.class
    WEB-INF/classes/com/maboite/monprojet/Truc.class

    et ainsi de suite,

    mais moi, j'aimerais avoir ça :
    WEB-INF/classes/ (et rien de plus ici).
    WEB-INF/lib/monAppli.jar

    Est-ce que cela est possible simplement avec Maven ? Y a-t'il quelque chose à décrire dans le fichier pom.xml pour ça ? Faut-il un plugin spécifique ?

    Je m'étais dit qu'au pire, je créerais 2 projets : Le premier contenant juste le Java, qui créerait donc le fichier monAppli.jar. Quant au second, celui contenant la webapp, il aurait pour dépendance le premier projet. Ainsi, j'arriverais à ce que je veux. Mais je trouve ça un peu lourd comme solution.

    Une idée alors ?

    Merci.
    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
    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
    Personne n'a une petite idée sur le sujet ?

    Sinon, est-ce que vous connaissez des très bons tutoriaux sur Maven 2 disponibles sur le Net (hormis les docs disponibles sur le site de Maven) ? Je parle d'un tutorial un peu plus avancé qu'une simple initiation (celle disponible sur ce site est très bonne d'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

  3. #3
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    La solution que tu décris est la bonne.
    Tu peux peut être trouvé ca lourd pour un petit projet mais c'est extremement utile pour des projets plus importants.
    Il te faudra un 3eme projet (de type pom) qui servira de parent et décrira les modules à construire (ca permettra de résoudre automatiquement l'ordre de construction des projets).

  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 : 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
    Merci pour ta réponse.

    Ne serait-il pas moins lourd de créer 2 fichiers pom.xml différents ? Le premier permettant la création du .JAR, le second celui du .WAR, incluant le 1er ?
    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 averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Ce n'est pas la solution que tu proposais ? Relis ce que tu as écris

  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 : 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
    Oui, désolé.
    En fait, au tout début, j'avais pensé à séparer physiquement les 2 projets, et ensuite je me suis dit que c'était complètement idiot, faire 2 pom.xml devraient suffire...
    Du coup, j'opte pour cette solution.

    Merci.
    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
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par romaintaz
    En fait, au tout début, j'avais pensé à séparer physiquement les 2 projets, et ensuite je me suis dit que c'était complètement idiot, faire 2 pom.xml devraient suffire...
    Du coup, j'opte pour cette solution.
    La "bonne" solution est de faire deux projets Maven 2 distincts, l'un contenant l'ensemble de la logique métier (dans un jar spécifique, eventuellement réutilisable), l'autre contenant uniqement la logique web, dans un war.

    Maven 2 est fait pour le multi-projet. Donc ce n'est pas un problème pour lui d'avoir tout plein de projets. Par contre, deux poms pour un seul et même projet, Maven ne va jamais de la vie comprendre....

  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 : 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
    Merci à tous pour votre aide.

    Alors effectivement, ce que j'ai fait, c'est de diviser mon projet en 2, la première partie pour les fichiers Java (Maven créant alors le .jar), le second pour tout le reste de la webapp (Maven se chargeant alors de créer le .war pour ce projet).
    Donc j'ai effectivement employé la solution que tu proposais denisC.
    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

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par romaintaz
    Merci à tous pour votre aide.

    Alors effectivement, ce que j'ai fait, c'est de diviser mon projet en 2, la première partie pour les fichiers Java (Maven créant alors le .jar), le second pour tout le reste de la webapp (Maven se chargeant alors de créer le .war pour ce projet).
    Donc j'ai effectivement employé la solution que tu proposais denisC.
    N'oublie pas

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

Discussions similaires

  1. WAR avec ses classes dans un JAR
    Par garthos dans le forum Maven
    Réponses: 2
    Dernier message: 20/04/2013, 00h46
  2. Attribut d'une classe dans un JAR
    Par Minimus dans le forum Langage
    Réponses: 7
    Dernier message: 12/10/2010, 09h46
  3. Plusieurs fois le même .class dans le jar
    Par kenny6 dans le forum Général Java
    Réponses: 7
    Dernier message: 25/04/2007, 16h42
  4. methode pour exécuter une class dans un jar
    Par yann_p dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2006, 17h47
  5. exécuter une classe dans un jar a partir d'une methode java
    Par yann_p dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 13/04/2006, 15h50

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