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 :

[Assembly] Ajout de jar d'autre "projet"


Sujet :

Maven Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    Par défaut [Assembly] Ajout de jar d'autre "projet"
    Bonjour Messieurs dames,

    J'utilise le plugin assembly comme l'indique mon Intitulé, et j'aimerais ajouté dans mon zip résultat, les jars provenant des dependency de mon pom.
    Pour celà j'ai utilisé la balise <dependencySets> dans le descripteur de mon assembly.

    Mon problème provient du fait que le fichier log4j-1.2.12.jar contient le contenu du fichier egedede-0.1.jar.

    J'ai regardé dans le répertoire log4j de mon repository local et le fichier log4j-1.2.12.jar est normal. J'avoue ne pas savoir d'où sorte les jars utilisés par assembly.
    Je ne comprends pas.

    Merci par avance.

    Ci dessous, mon pom.xml et l'assembly descriptor.
    pom.xml :
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <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/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>org.egedede.javautils</groupId>
      <artifactId>javautils</artifactId>
      <packaging>jar</packaging>
      <version>0.1</version>
      <name>Java Utils</name>
      <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.12</version>
          <scope>compile,package</scope>
        </dependency>
        <dependency>
          <groupId>org.egedede</groupId>
          <artifactId>egedede</artifactId>
          <version>0.1</version>
          <scope>compile,package</scope>
        </dependency>
      </dependencies>
     <build>
        <filters>
          <filter>./ant.properties</filter>
        </filters>
         <plugins>
    			 <plugin>
    					<groupId>org.apache.maven.plugins</groupId>
    					<artifactId>maven-compiler-plugin</artifactId>
    					<configuration>
    						 <source>1.6</source>
    						 <target>1.6</target>
    					</configuration>
    			 </plugin>
    				<plugin>
    	        <artifactId>maven-assembly-plugin</artifactId>
    	        <configuration>
    <!--						<filters>
    	            <filter>ant.properties</filter>
    	          </filters>
    -->
     	          <descriptors>
    	            <descriptor>src/maven/e-assembly-descriptor.xml</descriptor>
    	          </descriptors>
    	        </configuration>
    	        <executions>
    	          <execution>
    	            <id>make-assembly</id> <!-- this is used for inheritance merges -->
    	            <phase>package</phase> <!-- append to the packaging phase. -->
    	            <goals>
    	              <goal>attached</goal> <!-- goals == mojos -->
    	            </goals>
    	          </execution>
    	        </executions>
    	      </plugin>      
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
              <archive>
                <manifest>
                  <mainClass>${main_class}</mainClass>
                  <addClasspath>true</addClasspath>
                </manifest>
              </archive>
            </configuration>
          </plugin>
        </plugins>
    	</build>
    </project>
    assembly :
    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
    <assembly>
      <id>e-assembly-descriptor</id>
      <formats>
        <format>zip</format>
      </formats>
      <fileSets>
        <fileSet>
          <includes>
            <include>README*</include>
            <include>LICENSE*</include>
            <include>NOTICE*</include>
          </includes>
        </fileSet>
        <!-- configuration en dehors du jar -->
        <fileSet>
          <directory>src/conf/out</directory>
          <outputDirectory></outputDirectory>
    			<filtered>true</filtered>
        </fileSet>
        <!-- launcher def -->
        <fileSet>
          <directory>../../default/launcher/</directory>
          <outputDirectory></outputDirectory>
    			<excludes>
    				<exclude>launcher.properties</exclude>
    			</excludes>
    			<filtered>true</filtered>
        </fileSet>
        <!-- récupération des jars -->
        <fileSet>
          <directory>target</directory>
          <outputDirectory>lib/</outputDirectory>
          <includes>
            <include>*.jar</include>
          </includes>
        </fileSet>
      </fileSets>
      <files>
        <file>
          <source>../../default/launcher/launcher.properties</source>
          <outputDirectory/>
          <filtered>true</filtered>
        </file>
      </files>
    	 <dependencySets>
        <dependencySet>
          <outputFileNameMapping>log4j-1.2.12.jar</outputFileNameMapping>
    			<outputDirectory>lib/</outputDirectory>
    		</dependencySet>
        <dependencySet>
          <outputFileNameMapping>egedede-0.1.jar</outputFileNameMapping>
    			<outputDirectory>lib/</outputDirectory>
    		</dependencySet>
    	</dependencySets>
     
    </assembly>

  2. #2
    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 : 45
    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 Tiaps Voir le message
    <dependencySets>
    <dependencySet>
    <outputFileNameMapping>log4j-1.2.12.jar</outputFileNameMapping>
    <outputDirectory>lib/</outputDirectory>
    </dependencySet>
    <dependencySet>
    <outputFileNameMapping>egedede-0.1.jar</outputFileNameMapping>
    <outputDirectory>lib/</outputDirectory>
    </dependencySet>
    </dependencySets>
    Ca c'est pas bon du tout. outputFileNameMapping, c'est normalement un masque pour les jars inclus dans ton assembly ( du type : ${artifactId}-${version}-${classifier}.${extension} ) et là, tu lui mets une constante, pas ètonnant que ça ne marche pas.

    Reprenons au début : Quelles sont des dépendances que tu veux inclure dans ton zip?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    Par défaut
    Encore merci denisC. Tu es mon papa Maven

    Alors je veux intégrer ces deux là.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.12</version>
          <scope>compile,package</scope>
        </dependency>
        <dependency>
          <groupId>org.egedede</groupId>
          <artifactId>egedede</artifactId>
          <version>0.1</version>
          <scope>compile,package</scope>
        </dependency>
    J'avoue que je n'ai pas encore compris comment fonctionnait les repository et etc..
    Merci pour ton aide you're the

  4. #4
    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 : 45
    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
    Essaye quelque chose dans ce gout (Un seul depedencySet) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <assembly>
    ...
        <dependencySets>
          <dependencySet>
            <includes>
              <include>log4j:log4j</include>
              <include>org.egedede:egedede</include>
            </includes>
            <outputDirectory>lib/</outputDirectory>
          </dependencySet>
        </dependencySets>
     ...
    </assembly>
    Ca devrait te mettre les deux jars dans le repertoire lib.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    Par défaut
    Merci, c'est ca.
    Pex tu me dire la différence entre les deux (1 seul dependency set et 2)?
    Te prends pas la tête. Je trouverais bien tout seul 1 jour.

  6. #6
    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 : 45
    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 Tiaps Voir le message
    Merci, c'est ca.
    Pex tu me dire la différence entre les deux (1 seul dependency set et 2)?
    Te prends pas la tête. Je trouverais bien tout seul 1 jour.
    Un dependencySet, c'est un ensemble de dépendances auxquelles tu veux appliquer les mêmes règles (globalement, les mettre dans le même repertoire de sortie). C'est bien le cas pour tes deux dépendances, donc mieux vaux les rassembler dans le même dependencySet, C'est quand même plsu simple....

Discussions similaires

  1. Ajout de jar extérieur et compilation projet GWT
    Par x-timas dans le forum GWT et Vaadin
    Réponses: 6
    Dernier message: 21/01/2010, 13h18
  2. Réponses: 0
    Dernier message: 22/10/2008, 18h36
  3. Ajouter un jar ou un package à un autre package
    Par zoulai dans le forum JBuilder
    Réponses: 6
    Dernier message: 30/07/2003, 11h34

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