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 :

Construction du jar de mon appli avec les jar utilisés


Sujet :

Maven Java

  1. #1
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut Construction du jar de mon appli avec les jar utilisés
    Bonjour à tous,

    J'ai écris une petite appli avec Maven 2 (Eclipse + plugin m2eclipse).

    Mon appli est constituée de plusieurs projets eclipse : MonappliBatch + MonappliUtil + MonappliPersistence, etc.

    Dans Eclipse (bouton droit puis properties sur le projet), j'indique que mes projets ont besoin les uns des autres : MonappliBatch a besoin de MonappliUtil et de MonappliPersistence, etc.

    Quand je fais mvn package au niveau du pom parent, ça me crée bien les jar de chaque projet mais maven ne fait pas de référence aux projets entre eux. En plus, maven ne m'exporte pas les autre jar utilisés (log4j par exemple)

    J'ai un pom parent qui ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>fr.monappli</groupId>
      <artifactId>monappli</artifactId>
      <packaging>pom</packaging>
      <version>2.0</version>
      <name>monappli</name>
      <url>http://www.lala.org</url>
      <modules>
        <module>MonappliUtil</module>
        <module>MonappliPersistence</module>
        <module>MonappliBatch</module>
      </modules>
    </project>
    Et le pom de MonappliBatch ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    <?xml version="1.0"?>
    <project>
    	<parent>
    		<groupId>fr.monappli</groupId>
    		<artifactId>monappli</artifactId>
    		<version>2.0</version>
    	</parent>
     
    	<build>
     
    		<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-compiler-plugin</artifactId>
    				<configuration>
    					<source>1.5</source>
    					<target>1.5</target>
    				</configuration>
    			</plugin>
    		</plugins>
     
    	</build>
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>fr.monappli</groupId>
    	<artifactId>MonappliBatch</artifactId>
    	<name>MonappliBatch</name>
    	<version>2.0</version>
    	<packaging>jar</packaging>
    	<url>http://maven.apache.org</url>
    	<dependencies>
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<version>3.8.1</version>
    			<scope>test</scope>
    		</dependency>
     
    		<dependency>
    			<groupId>log4j</groupId>
    			<artifactId>log4j</artifactId>
    			<version>1.2.15</version>
    			<scope></scope>
    		</dependency>
     
    		<dependency>
    			<groupId>jdom</groupId>
    			<artifactId>jdom</artifactId>
    			<version>1.1</version>
    		</dependency>
     
     
     
    	</dependencies>
     
     
    </project>
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  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,

    Ton problème est le suivant :
    Tu dis que MonappliBatch a besoin de MonappliUtil. Ok. Le problème, c'est que tu ne dis pas, dans le pom.xml de MonappliBatch qu'il a besoin de MonappliUtil.
    Cela se fait par la définition d'une dépendance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <dependency>
        <groupId>fr.monappli</groupId>
        <artifactId>MonappliUtil</artifactId>
        <version>2.0</version>
    </dependency>
    Le fait que tu aggréges les 3 projets (i.e. qu'il existe un projet dont tous les sous projets sont des modules) ne les rend pas inter-dépendants pour autant !
    Heureusement d'ailleurs, sinon comment Maven s'y prendrait-il pour connaître l'ordre de compilation des modules ?
    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
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    En fait, ça ne fait toujours pas ce qu'il faut. C'est même pire puisque ça fou en l'air mes projets Eclipse. En effet, j'ai bien MonappliUtil qui apparait dans la librairie Maven2Dependencies (dans eclipse) mais le jar produit avec mvn package sur le pom parent ne contient toujours pas de référence à MonappliUtil. Et je n'ai toujours pas le jar de log4j (pour ne citer que lui) qui est intégré...

    Avec cette méthode, qui plus est, si je fais une modif dans eclipse sur MonappliUtil, elle n'est donc pas immédiatement dispo pour MonappliBatch...
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/03/2014, 10h06
  2. Tester mon programme avec un jar dans les librairies
    Par Ivelios dans le forum NetBeans
    Réponses: 7
    Dernier message: 16/11/2009, 00h21
  3. Positionnement de mon menu avec les différents navigateurs
    Par LeDiablotin dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 20/01/2008, 13h34
  4. ressource dans le jar de mon appli
    Par laclac dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2007, 16h36
  5. Réponses: 8
    Dernier message: 13/03/2007, 13h59

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