http://maven.apache.org/plugins/maven-assembly-plugin/examples/single/using-components.html
Regards, Stevo. On Fri, Oct 9, 2009 at 4:12 PM, Jaikiran <[email protected]> wrote: > > 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] > >
