Mon Parent POMComment créer des assemblages avec des dépendances transitifs dans Maven projet multi-modules
<modules>
<module>test.distribution.module1</module>
<module>test.distribution.module2</module>
<module>test.distribution.dist</module>
</modules>
...
...
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>create-distribution</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
POM du module 1 et le module 2 sont trivial (avec des scripts de démarrage dans l'emplacement par défaut). Ci-dessous POM du module de distribution,
<dependencies>
<dependency>
<groupId>com.abhishek</groupId>
<artifactId>test.distribution.module1</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.abhishek</groupId>
<artifactId>test.distribution.module2</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
</plugin>
</plugins>
</build>
Voici assembly.xml dans le module de distribution
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>bin</id>
<!-- Specifies that our binary distribution is a zip package -->
<formats>
<format>zip</format>
</formats>
<moduleSets>
<moduleSet>
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>com.abhishek:test.distribution.module1</include>
</includes>
<sources>
<fileSets>
<fileSet>
<directory>${project.build.scriptSourceDirectory}</directory>
<outputDirectory></outputDirectory>
</fileSet>
<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>README*</include>
<include>LICENSE*</include>
<include>NOTICE*</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>lib</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.build.directory}/site</directory>
<outputDirectory>docs</outputDirectory>
</fileSet>
</fileSets>
</sources>
</moduleSet>
<moduleSet>
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>com.abhishek:test.distribution.module2</include>
</includes>
<sources>
<fileSets>
<fileSet>
<directory>${project.build.scriptSourceDirectory}</directory>
<outputDirectory></outputDirectory>
</fileSet>
<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>README*</include>
<include>LICENSE*</include>
<include>NOTICE*</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>lib</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.build.directory}/site</directory>
<outputDirectory>docs</outputDirectory>
</fileSet>
</fileSets>
</sources>
</moduleSet>
</moduleSets>
Tout est OK, mais les résultats "du paquet mvn clean" dans
test.distribution.dist-0.0.1-SNAPSHOT-bin.zip
--test.distribution.dist-0.0.1-SNAPSHOT-bin
--test.distribution.module1
--lib
--module1.jar
--start.bat
--test.distribution.module2
--lib
--module2.jar
--start.bat
La seule chose que je veux est de mettre les dépendances transitives de module1 dans test.distribution.module1/lib fo lder et même pour le module 2.
Une autre chose est, je veux savoir quand utiliser un ensemble de modules sur un ensemble de dépendances.
J'apprécierais tout conseil de bonne pratique concernant la structure de mon projet ou quoi que ce soit.