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 :

Build conditionnel (1 pom / 2 jars)


Sujet :

Maven Java

  1. #1
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Points : 909
    Points
    909
    Par défaut Build conditionnel (1 pom / 2 jars)
    Bonjour,

    J'ai un projet utilisant Maven qui va être déployé en 2 versions.
    Exemple :
    une version Light avec les fonctionnalités A-B-C
    une version Full avec les fonctionnalités A-B-C-D-E
    (D et E ne sont pas indépendants de A-B-C mais sont compartimentés dans des classes spécifiques autant que possible)

    Nous envisageons la possibilité d'avoir une seule branche de développement mais qui pourra produire un jar Light.jar ou un jar Full.jar. (Au lieu d'externaliser les classes en plus dans un jar à part)

    Comment faire avec Maven ? Au départ j'avais pensé aux profils mais en faisant des recherches il semblerait que ce soit "bad practice" de s'en servir comme ça .

    Merci d'avance si vous pouvez m'aiguiller.
    Informaticienne le jour, créatrice de bijoux la nuit (https://www.facebook.com/La-Fée-Chro...07539656306271) et maman à plein temps !

  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
    Bonjour,

    En fait, ce qui est plutôt une mauvaise pratique avec maven, c'est d'avoir un projet (un module) permettant de créer 2 jars. Dans la philosophie Maven, un projet = un livrable.
    Il y a 2 mauvais choix possibles :

    • Utiliser comme tu le dis des profils, permettant de faire 2 packages différents en fonction de ce que tu veux. Cela nécessitera toutefois de compiler 2 fois ton projet.
    • Compiler normalement ton projet, et utiliser des plugins d'assembly pour créer les JAR que tu veux avec le bon contenu.


    Ce sont deux mauvaises solutions car en gros, tu as des classes Java dans src/main/java, mais tu n'as pas envie de tout compiler (par ex. ton 1er JAR ne contiendrait que les fonctionnalités A, B et C, et donc ne devrait pas inclure certains fichiers .class).

    La 3e solution, à mon sens beaucoup plus propre, est de partir sur un projet multi-modules. Tu as le projet module1 qui contient le code des fonctionnalités A, B et C, et le module2 qui contient D et E.
    Du coup, chaque module compile "normalement" (i.e. avec toutes ses classes) et produit un JAR bien spécifique. Si tu as besoin de A, B et C, tu n'embarques que module1.jar. Si tu as besoin en plus de D et E, tu embarqueras module1.jar et module2.jar.
    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 éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Points : 909
    Points
    909
    Par défaut
    En fait on fait déjà cela sur certains autres projets mais j’étais partie sur la solution compilation conditionnel pour de sordide histoire politique ... En fait actuellement le client principale paye pour la version light mais on développe la version full et on la met a disposition de certains utilisateurs en espérant qu'il pousse le gros client à acheter la version full (... Oué c'est tordu, c'est le secteur publique !). Du coup au final on espère n'avoir qu'une seule version du projet.

    Bon je vais aller prendre la température coté donneur d'ordre si on pense vraiment que c'est une situation temporaire je ferais avec Maven sinon je ferais des modules.

    Merci !
    Informaticienne le jour, créatrice de bijoux la nuit (https://www.facebook.com/La-Fée-Chro...07539656306271) et maman à plein temps !

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

Discussions similaires

  1. garder synchroniser build ant et pom.xml
    Par pcouas dans le forum Maven
    Réponses: 3
    Dernier message: 03/03/2010, 23h49
  2. Build path et export des jar dans un war
    Par sir_gcc dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 05/10/2008, 12h55
  3. Outils d'Intégration Continue - Build conditionnel
    Par romaintaz dans le forum Intégration Continue
    Réponses: 5
    Dernier message: 14/11/2007, 09h20
  4. Problème POM classes12.jar
    Par D.Mounir dans le forum Maven
    Réponses: 10
    Dernier message: 08/08/2007, 18h22
  5. Netbeans 4.0 + jar avec Build.xml
    Par sbibi dans le forum NetBeans
    Réponses: 2
    Dernier message: 02/02/2005, 12h25

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