- attach-source-javadoc
- |-- pom.xml
- |-- src\
- `-- target
- `-- apache-maven-cookbook-1.0-SNAPSHOT-bin
- `-- apache-maven-cookbook-1.0-SNAPSHOT-bin.tar.bz2
- `-- apache-maven-cookbook-1.0-SNAPSHOT-bin.tar.gz
- `-- apache-maven-cookbook-1.0-SNAPSHOT-bin.zip
To generate an assembly, we need to configure an assembly descriptor called bin.xml in the src/assembly directory. Firstly, we specify the wanted formats, i.e.
- <formats>
- <format>tar.gz</format>
- <format>tar.bz2</format>
- <format>zip</format>
- </formats>
And the wanted files sets, i.e.
- <fileSets>
- <fileSet>
- <includes>
- <include>README*</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>src/bin</directory>
- <outputDirectory>bin</outputDirectory>
- <includes>
- <include>*.bat</include>
- </includes>
- <lineEnding>dos</lineEnding>
- </fileSet>
- <fileSet>
- <directory>src/bin</directory>
- <outputDirectory>bin</outputDirectory>
- <includes>
- <include>hello</include>
- </includes>
- <lineEnding>unix</lineEnding>
- <fileMode>0755</fileMode>
- </fileSet>
- <fileSet>
- <directory>target</directory>
- <outputDirectory>lib</outputDirectory>
- <includes>
- <include>generate-assembly-*.jar</include>
- </includes>
- </fileSet>
- </fileSets>
We execute the assembly:single goal from the Assembly plugin during the package phase.
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <descriptor>src/assembly/bin.xml</descriptor>
- <finalName>apache-maven-cookbook-${pom.version}</finalName>
- </configuration>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- </execution>
- </executions>
- </plugin>