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 :

jar externe ne passe pas dans Maven


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Par défaut jar externe ne passe pas dans Maven
    bonjour,

    j'ai un projet pour lequel j'ai intégré une librairie externe issu d'un autre de mes projets. Pour ça, j'ai juste ajouter le jar au build path de mon projet dans Eclipse.
    Sauf que du coup, Maven ne l'ajoute pas à mon war lors du build, ce qui fait que mes tests ne passent pas...

    Comment faire pour ajouter mon jar au projet à la fois dans Eclipse et Maven? J'ai bien pensé le mettre dans le pom, mais je vois pas de quelle manière vu que c'est un jar issu d'un de mes propres projets en local...

    Merci d'avance pour vos conseils

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

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bonjour,

    Tu as 2 possibilités :

    1. Ajouter ton JAR dans ton repository (local ou d'entreprise), grâce à la commande mvn install:install-file. Ensuite, il te suffira de définir ta dépendance "normalement".

    2. Définir cette dépendance avec un scope system et d'indiquer à Maven où trouver le JAR grâce à systemPath (moins recommandé) :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <dependency>
        <groupId>com.maboite</groupId>
        <artifactId>ma-librairie</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>lib/ma-librairie.jar</systemPath>
    </dependency>
    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 éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Par défaut
    merci pour ta réponse. Vu que la deuxième solution est peu recommandée, je vais plutôt opter pour la première.

    J'ai juste une question à propos de cette première solution : avec la commande mvn install:install-file, mon jar sera copié dans le repository local (avec la commande complète dont tu m'as donné le lien). Mais du coup, il faut relancer la commande mvn install:install-file à chaque fois qu'on génère un nouveau jar? (vu que le développement des deux projet se fait en parallèle, il arrive que la lib jar évolue auquel cas il faut regénérer le jar).

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

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Oui, et il faudra d'ailleurs changé la version, car il est dangereux d'avoir 2 JAR avec une même version stable (1.0 par exemple), mais dont le contenu est différent !

    Selon la façon dont est buildé ta librairie, pourquoi ne pas y ajouter une commande de déploiement (mvn deploy:deploy-file, même principe mais déploiement sur un repository distant) à la fin de sa génération ? Par ex. si vous utilisez Ant sur ce projet, il suffit d'ajouter une tache pour faire ça...
    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 éclairé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Par défaut
    je n'utilise pas Ant, et ces deux projets sont les premiers pour lesquelles j'utilise Maven, d'où mon manque d'expérience en la matière
    Et la chose n'est pas facilité par le fait que j'apprends tout ça comme je peux avec les tutos sur Internet et l'aide que je trouve sur les forums vu qu'il n'y a personne qui peut m'aider dans ma boite.

    Bref, tout ça pour dire que je lance la commande mvn clean install à la main pour builder ma librairie et que je ne sais pas vraiment comment configurer le pom pour que le déploiement se fasse automatiquement avec copie du jar au bon endroit et lancement de la commande mvn install:install-file sur l'autre projet automatiquement
    Mais bon, au pire je lancerai les deux commandes à la suite l'une de l'autre à la mano, c'est pas un drame dramatique

  6. #6
    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,
    Tu peux dans la phase validate par exemple déclarer un maven-exec-plugin qui lance ta commande maven sur le jar voulu.
    les détails ici.
    J'espère que ça t'aidera.

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

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par zaboug Voir le message
    Bref, tout ça pour dire que je lance la commande mvn clean install à la main pour builder ma librairie et que je ne sais pas vraiment comment configurer le pom pour que le déploiement se fasse automatiquement avec copie du jar au bon endroit et lancement de la commande mvn install:install-file sur l'autre projet automatiquement
    Mais bon, au pire je lancerai les deux commandes à la suite l'une de l'autre à la mano, c'est pas un drame dramatique
    Bon, je vais te faciliter la tâche : quand tu lances mvn clean install sur ta librairie, bah le goal install va justement installer le JAR dans ton repository local ! Donc tu n'as même plus besoin de l'installer manuellement, vu que tu viens de le faire.
    Et au final, tu peux aussi oublier l'histoire du scope system, car ta dépendance est déjà mavenisée Ta librairie est donc une librairie "normale", comme pour un log4j, un Spring ou autre !
    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

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

Discussions similaires

  1. Ma requête SQL SELECT ne passe pas dans next()
    Par Somato dans le forum Bases de données
    Réponses: 17
    Dernier message: 02/06/2008, 15h45
  2. pourquoi je ne passe pas dans mon action
    Par fk04 dans le forum Struts 1
    Réponses: 5
    Dernier message: 03/10/2007, 21h20
  3. Réponses: 6
    Dernier message: 08/08/2006, 11h57
  4. Ctrl -] ne passe pas dans une console avec vim
    Par Celelibi dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 10/03/2006, 13h35
  5. Réponses: 8
    Dernier message: 26/10/2005, 03h52

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