Hi all, I have two Maven projects named t4-core-utils and t4-core-commons. They build jar artifacts and install them to my M2 repository. Now I want to build a jar that merges both jars (extract files from these jars and add them to a new jar) then install it to M2 repository so that it can be used as a dependency in other Maven projects.
I tried to use Maven Assembly plugin to achieve this. I could create the new jar and install it to M2 repo, but I have problems with the way pom file is generated in M2 repo. The pom.xml is as following (t4-parent is used for dependency management) : <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>t4</groupId> <artifactId>t4-core-all</artifactId> <packaging>jar</packaging> <parent> <groupId>t4</groupId> <artifactId>t4-parent</artifactId> <version>1.0-SNAPSHOT</version> </parent> <version>1.0-SNAPSHOT</version> <name>T4 Core All</name> <dependencies> <dependency> <groupId>t4</groupId> <artifactId>t4-core-utils</artifactId> <version>${version}</version> </dependency> <dependency> <groupId>fr.horoquartz.t4</groupId> <artifactId>t4-core-commons</artifactId> <version>${version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptors> <descriptor>src/main/assembly/t4-core-all.xml</descriptor> </descriptors> <appendAssemblyId>false</appendAssemblyId> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>attached</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project> And the t4-core-all.xml file : <?xml version="1.0" encoding="UTF-8"?> <assembly 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../../../../exchange-ws-api/assembly-1.1.0-SNAPSHOT.xsd "> <id>t4-core-all</id> <formats> <format>jar</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <dependencySets> <dependencySet> <unpack>true</unpack> <unpackOptions> <excludes> <exclude>META-INF/persistence.xml</exclude> <exclude>META-INF/ejb-jar.xml</exclude> </excludes> </unpackOptions> <useTransitiveDependencies>false</useTransitiveDependencies> </dependencySet> </dependencySets> <files> <file> <source>src/main/assembly/persistence.xml</source> <outputDirectory>META-INF</outputDirectory> </file> <file> <source>src/main/assembly/ejb-jar.xml</source> <outputDirectory>META-INF</outputDirectory> </file> </files> </assembly> The pom generated for t4-core-all just contains dependencies to t4-core-utils and t4-core-commons. So when adding t4-core-all as a dependency, I have all classes twice, in t4-core-all and in t4-core-commons or t4-core-utils ... Actually what I need is that the pom for t4-core-all contains transitive dependencies from t4-core-utils and t4-core-commons (for example hibernate, commons-lang, etc...), and not dependencies to t4-core-utils and t4-core-commons. A kind of pom merging. Is there a way to do this ? Thanks in advance, Olivier