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 multi modules


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 101
    Par défaut assembly multi modules
    Bonjour.

    J'ai un projet parent avec plusieurs modules, dont voici une partie du pom

    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
     
    <build>
    <plugins>
    	<plugin>
    		<artifactId>maven-assembly-plugin</artifactId>
    		<configuration>
    			<descriptors>
    				<descriptor>src/main/assembly/cd.xml</descriptor>
    			</descriptors>
    		</configuration>
    		<executions>
    			<execution>
    				<id>cd</id>
    				<phase>package</phase>
    				<goals>
    					<goal>assembly</goal>
    				</goals>
    			</execution>
    		</executions>
    	</plugin>
    </plugins>
    </build>
     
    <modules>
    	<module>Module1</module>
    	<module>Module2</module>
    	<module>...</module>
    </modules>
    Quand je lance un 'package' sur mon projet parent, le assembly ne trouve pas son fichier de description car le répertoire d'origine est devenu celui du Module1 (maven va chercher dans Module1/src/main...)

    Si je lance un 'assembly' directement avec ce même pom, je n'ai pas ce problème...

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 101
    Par défaut
    En fait, c'est le noeud <executions> qui a l'air de poser problème.
    Mais si je le supprime, mon assembly n'est plus exécuté sur un package.
    ça veut dire que je suis obligé d'enchainer les taches?

    mvn clean package assembly

  3. #3
    Membre expérimenté Avatar de dvicente72
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 213
    Par défaut
    Salut,

    c'est normal car le path du descriptor de l'assembly n'est valable que sur le projet sur lequel tu es.

    Donc si tu mets cette conf dans le pom parent, il ne fera pas l'assembly car le type de projet est pom, par contre pour chaque module , il va essayer de trouver ton fichier par rapport à la racine de ton module et evidemment il ne le trouve pas.

    Pour résoudre ça, tu as 2 posssibilités :
    1) tu recopies dans tous tes modules src\main\assembly\cd.xml
    2) ou alors
    - tu crées un nouveau module "config_assembly" avec un pom de type jar et comme parent le même que les autres modules
    - tu mets ton cd.xml dans src\main\resources\assembly
    - tu mets ce nouveau module comme premier module à builder dans ton pom parent
    - ensuite dans ton pom parent tu configures ton assembly comme suit :

    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
     
    <build>
    	<!-- fichiers de configuration pour assembly -->
    	<extensions>
    		<extension>
    			<groupId>xxxxxxxx</groupId>
    			<artifactId>config_assembly</artifactId>
    			<version>1.0</version>
    		</extension>
    	</extensions>
    	<plugins>
    	<plugin>
    		<artifactId>maven-assembly-plugin</artifactId>
    		<configuration>
    			<descriptors>
    				<descriptor>assembly/cd.xml</descriptor>
    			</descriptors>
    		</configuration>
    		<executions>
    			<execution>
    				<id>cd</id>
    				<phase>package</phase>
    				<goals>
    					<goal>assembly</goal>
    				</goals>
    			</execution>
    		</executions>
    	</plugin>
    	</plugins>
    </build>
    comme ça, en rajoutant "config-assembly" comme extension dans ton build, il devient un dépendance pour les plugin et tu as le droit de rechercher n'importe quel fichier dans ton jar en dépendance

    et voilà le travail

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 101
    Par défaut
    Merci pour ta réponse.

    Ce qui fonctionne aussi est de ne pas mettre de neoud execution et d'enchainer les taches. ça me parait plus simple.
    si je lance un mvn package, maven me génère toute mon appli déployable, puis le mvn assembly me la package comme je le souhaite.

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

Discussions similaires

  1. gestion multi modules avec assembly
    Par yenfou2000 dans le forum Maven
    Réponses: 1
    Dernier message: 08/04/2010, 16h17
  2. Réponses: 11
    Dernier message: 01/04/2008, 14h42
  3. [SITE] Conceptualiser un site multi modules.
    Par proner dans le forum Maven
    Réponses: 7
    Dernier message: 29/10/2007, 14h14
  4. [Reporting] Récursivité multi-modules
    Par elitost dans le forum Maven
    Réponses: 4
    Dernier message: 08/09/2006, 08h27
  5. BUILD ERROR sur création d'un projet multi-modules
    Par elitost dans le forum Maven
    Réponses: 1
    Dernier message: 28/08/2006, 15h23

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