Hello everyone,

I have a project org.myapp:proj which is a jar artifact. This project is
configured to use maven-assembler-plugin to create a custom artifact (let's
say proj-client1.jar). The descriptor configuration xml (let's call it
client1-assembler.xml) used for this assembler plugin looks like this:

<?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
http://maven.apache.org/xsd/assembly-1.0.0.xsd";
>
  <id>clien1</id>
  <formats>
    <format>jar</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <fileSets>
    <fileSet>
      <directory>src/main/resources</directory>
      <excludes>
        <exclude>blah.xml</exclude>
      </excludes>
      <outputDirectory>packages</outputDirectory>
    </fileSet>
  </fileSets>
  <dependencySets>
    <dependencySet>
     
<outputFileNameMapping>${artifactId}.${extension}</outputFileNameMapping>
      <includes>
        <include>ant-contrib:ant-contrib</include>
        <include>org.myapp.abc:xyz:jar</include>


Now for this same project i need to generate another artifact
proj-client2.jar which does the exact same thing as the descriptor in
client1 *and also* adds its own set of libraries in the resultant artifact. 

So a very simple way to achieve this would be to copy-paste the contents of
the client1-assembler.xml and create a client2-assembler.xml. The
client2-assembler.xml will then also have its own custom configurations. The
assembler plugin can then use this as:

           <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.2-beta-1</version>
                    <executions>
                      <execution>
                        <id>make-assembly</id> 
                        <phase>package</phase>
                        <goals>
                          <goal>single</goal>
                        </goals>
                      </execution>
                    </executions>
                    <configuration>
                      <descriptors>
                       
<descriptor>src/main/resources/client1-assembler.xml</descriptor>
                       
<descriptor>src/main/resources/client2-assembler.xml</descriptor>
                      </descriptors>


However, copy/paste from client1-assembler.xml to client2-assembler.xml just
leads to duplicacy and maintenance nightmare (someone would have to ensure
that whatever changes happen to client1-assembler.xml is applied manually
even to client2-assembler.xml). 

Is there a way i can avoid this duplicacy? Something on the lines of
client2-assembler.xml "referencing" or "inheriting" from
client1-assembler.xml. Is this possible or anything similar?


-- 
View this message in context: 
http://www.nabble.com/Maven-assembler-plugin---How-to-avoid-duplicating-configurations-in-assembler-descriptors--tp25821854p25821854.html
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to