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 :

[Eclipse m2] Exécuter un POM qui ne s'appelle pas pom.xml ?


Sujet :

Maven Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Architecte senior Java EE/Spring - ScrumMaster
    Inscrit en
    Juin 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte senior Java EE/Spring - ScrumMaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 229
    Par défaut [Eclipse m2] Exécuter un POM qui ne s'appelle pas pom.xml ?
    Bonjour à tous,

    Dans mon projet Maven, j'ai un pom.xml. Normal. Avec la gestion des dépendances Maven via le plugin m2 de Eclipse, le projet se compile sous Maven.
    Or, ce projet contient d'autres fichiers pom-*.xml que j'aimerais pouvoir "lancer" depuis Eclipse. Mais un click-droit sur ces fichiers ne propose pas d'actions Maven (normal aussi, je suppose : ces fichiers sont bien identifiés - cf. icônes dans l'explorateur de projets - comme des fichiers Maven, mais pas comme étant le POM par défaut).

    Question : puis-je lancer un "clean install" sur ces fichiers depuis ce plugin Eclipse ? Est-ce qu'un autre plugin le permettrait si ça n'est pas le cas ?
    Pourquoi (bonus) : Je me sers des User Settings (préférences) pour pointer sur des dépôts locaux différents pour chaque workspace. J'aimerais donc pouvoir générer les artefacts paramétrés dans ces fichiers directement depuis Eclipse, dans le dépôt affecté au Workspace.

    Merci d'avance.

  2. #2
    Membre éclairé

    Inscrit en
    Août 2002
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Août 2002
    Messages : 302
    Par défaut
    Bonjour,
    Pourquoi ne pas jouer avec des profils plutôt que se trimbaler n fichiers pom-*.xml ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Architecte senior Java EE/Spring - ScrumMaster
    Inscrit en
    Juin 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte senior Java EE/Spring - ScrumMaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 229
    Par défaut
    Bonjour,

    C'est en effet une bonne question. Disons que, vu mes succès (cf. autres posts) avec l'héritage de POM... j'essaye d'abord les solutions faciles.
    Par ailleurs, est-ce que Eclipse/m2 permettra d'exécuter ces différents profils simplement, au bout du compte ? Je n'ai trouvé que le réglage global, ce qui m'oblige à faire des aller-retours dans la configuration...

    Mon idée, serait de déclarer ces "sous-projets" - qui ne sont pas des modules, mais des artefacts "réducteurs" (api des classes métier, de certains services mais pas tous, etc.) d'un même code source - dans le POM pour qu'ils soient produits en plus du WAR principal, et systématiquement. Mais je ne m'y suis pas encore mis (cf. fausse excuse précédente).

  4. #4
    Membre éclairé

    Inscrit en
    Août 2002
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Août 2002
    Messages : 302
    Par défaut
    bonjour,
    ça m'a l'air bien tordu tout ça
    Essaie de créer un pom avec deux profils et fais quelques tests. je crois que m2 prend en charge les profils et tu peux créer de mutliples exécutions avec différents profils tout en définissant un profil actif dans les propriétés de ton projet.
    A toi de voir l'ami

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    je crois que vous perdez de vue l'aspect principal de maven qui est de faire un build reproductible. A partir du moment où il faut jouer avec des profils, des variables d'envirronement ou jongler avec différent pom-*, on est plus du tout dans cet usage, et il n'y a rien de surprenant à ce que eclipse et ses plugins ne gèrent pas ça.

    Puisque vous avez plusieurs pom, je ne comprend pas pourquoi vosu ne les avez pas plutot organisés en modules. au lieu d'avoir pomx, pomy, pomz avoir

    principal
    pom.xml
    x
    pom.xml
    y
    pom.xml
    z
    pom.xml

  6. #6
    Membre éclairé
    Homme Profil pro
    Architecte senior Java EE/Spring - ScrumMaster
    Inscrit en
    Juin 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte senior Java EE/Spring - ScrumMaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 229
    Par défaut
    @tchize Comme je l'ai expliqué ci-dessus, il n' s'agit pas de modules à mon avis, étant donné que ce sont des artefacts différents basés sur un même code.

    Par ailleurs, je ne suis pas à l'origine de cette architecture. Ça, c'est la vraie vie ! Moi, aussi, j'aurai fait différemment. Chaque participant à ce forum aurait sans doute fait différemment. Mais ça n'est pas la question.

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Citation Envoyé par tooms4444 Voir le message
    @tchize Comme je l'ai expliqué ci-dessus, il n' s'agit pas de modules à mon avis, étant donné que ce sont des artefacts différents basés sur un même code.
    Je vois pas en quoi c'est exclu. Pour faire des artefacts différents, soit tu les fait faire par différent pom (rien n'exclu du partage de code) si les binaire compilés sont différents pour une raison x ou y, soit dans le même pom si ce sont juste des ressources ou des filtres appliqués aux classes, via par exemple, le plugin assembly.

  8. #8
    Membre confirmé Avatar de greaumaxime
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Par défaut
    Bonjour,

    Il faudrait que tu expliques plus clairement ce que tu veux faire pour que l'on puisse te donner les bonnes pratiques.

    D'après ce que j'ai compris, tu as les 2 solutions suivantes :

    1) l'option -f (--file) qui te permet de préciser à Maven le fichier XML que tu veux utiliser en tant que POM :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mvn clean package -f pom-x.xml
    2) l'option -s (--settings) ou -gs (--global-settings) pour utiliser un fichier settings.xml différent dans tes workspaces afin de définir des repositories différents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mvn clean package -s /home/user/settings-x.xml
    Dans ces 2 cas, il faut que tu utilises le "Run configuration" de Eclipse pour ajouter ces paramètres dans les commandes Maven que tu lanceras.

  9. #9
    Membre éclairé
    Homme Profil pro
    Architecte senior Java EE/Spring - ScrumMaster
    Inscrit en
    Juin 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte senior Java EE/Spring - ScrumMaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 229
    Par défaut
    Question : puis-je lancer un "clean install" sur ces fichiers depuis ce plugin Eclipse ?
    ...
    Il faudrait que tu expliques plus clairement ce que tu veux faire pour que l'on puisse te donner les bonnes pratiques.
    ... il faut que tu utilises le "Run configuration" de Eclipse ...
    RIEN de plus que ça. Je n'avais tout simplement pas remarqué que l'on pouvait configurer des "runs" Maven...
    Merci beaucoup ; clair et efficace. Je me sens écouté.

    Une dernière question : le fait d'avoir configuré les settings dans les préférences de Maven ne dispense-t-il pas de mettre l'option -s dans le run ?
    Merci encore.

  10. #10
    Membre éclairé
    Homme Profil pro
    Architecte senior Java EE/Spring - ScrumMaster
    Inscrit en
    Juin 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte senior Java EE/Spring - ScrumMaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 229
    Par défaut
    Ah, tiens ; non je n'y arrive pas... Peut-être n'ai-je pas compris où paramétrer les options en question ; est-ce que je dois bien utiliser un "Maven run conf" ?
    J'ai précisé la racine du projet concerné dans l'onglet Main, mis clean install dans les goals, et -f/pom-jar.xml dans les paramètres
    Mais à l'arrivée, la commande est celle-ci :

    mvn -D-f=pom-api-reprise.xml -B clean install
    J'ai la forte impression que les "builds Maven" sont de toute façon dirigés vers le pom.xml... Et je n'ai (bien sûr) pas trouvé d'équivalent à l'option -f pour les system properties ni les environment variables...

    NB : pour ceux qui suivent, il faut bien préciser d'exécuter la commande dans la même JRE qu'Eclipse, sinon il n'est pas possible de nettoyer le target dir (cf. clean)

  11. #11
    Membre confirmé Avatar de greaumaxime
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Par défaut
    est-ce que je dois bien utiliser un "Maven run conf" ?
    Oui tout à fait.

    et -f/pom-jar.xml dans les paramètres
    Le plus simple est de mettre "-f pom-jar.xml" sur la même ligne que les goals

    Une dernière question : le fait d'avoir configuré les settings dans les préférences de Maven ne dispense-t-il pas de mettre l'option -s dans le run ?
    Oui exactement. Le fait de mettre l'option "-s" ou "-gs" était une alternative à l'utilisation de plusieurs pom.xml (utilisation de plusieurs settings.xml)

    Sinon selon les traitements que vous souhaitez réaliser, l'utilisation des profils dans les pom.xml ou dans les settings.xml est une autre possibilité.

  12. #12
    Membre éclairé
    Homme Profil pro
    Architecte senior Java EE/Spring - ScrumMaster
    Inscrit en
    Juin 2010
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte senior Java EE/Spring - ScrumMaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 229
    Par défaut
    Le plus simple est de mettre "-f pom-jar.xml" sur la même ligne que les goals
    Impec' ; audacieux (je n'aurais pas osé) mais efficace.
    Merci encore !

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

Discussions similaires

  1. Un script qui ne s'appelle pas tout le temps
    Par omar24 dans le forum jQuery
    Réponses: 5
    Dernier message: 21/04/2011, 11h51
  2. Réponses: 1
    Dernier message: 25/10/2005, 14h25
  3. jar Eclipse/bureau -> exécute pas mes requetes !!!
    Par Elea49 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 04/08/2005, 16h11
  4. [Eclipse 3.0.1] Image qui n'affiche que son path
    Par thehpman dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 16/03/2005, 12h28
  5. [Eclipse 2.1] des fichiers qui sautent dans WEB-INF/classes
    Par iubito dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 04/10/2004, 17h07

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