[ https://issues.apache.org/jira/browse/MASSEMBLY-992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Slawomir Jaranowski closed MASSEMBLY-992. ----------------------------------------- Resolution: Fixed > Facility to define assembly descriptor in body of POM > ----------------------------------------------------- > > Key: MASSEMBLY-992 > URL: https://issues.apache.org/jira/browse/MASSEMBLY-992 > Project: Maven Assembly Plugin > Issue Type: New Feature > Reporter: Garret Wilson > Assignee: Slawomir Jaranowski > Priority: Major > Fix For: 3.7.0 > > > The Maven Assembly Plugin allows custom descriptors to be defined, but only > in an external file. Please add the capability to define the descriptor in > the body of the POM itself. > Requiring a separate descriptor file makes it almost impossible to declare an > assembly in a parent POM so that it can be inherited by child POMs. The > documentation describe a way to [share > descriptors|https://maven.apache.org/plugins/maven-assembly-plugin/examples/sharing-descriptors.html], > but it is complex and doesn't obviously support Maven property interpolation. > Without this facility, in order to easily inherit an assembly from a parent > POM, I'm currently resorting to workaround involving AntRun to generate an > assembly descriptor on the fly. See [this > {{pom.xml}}|https://github.com/globalmentor/globalmentor-root/blob/main/pom.xml]. > It's pretty convoluted and tedious to get right. In addition, it has to be > placed in a phase that is guaranteed to run before the execution of the Maven > Assembly Plugin itself. > {code:xml} > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-antrun-plugin</artifactId> > <executions> > <execution> > <!-- > Generates an assembly descriptor for the binary > distribution. > --> > <id>generate-bin-assembly-descriptor</id> > <phase>prepare-package</phase> > <goals> > <goal>run</goal> > </goals> > <configuration> > <skip>${_isSkipGenerateExe}</skip> > <target> > <echo file="${assemblyDirectory}/bin.xml" > encoding="UTF-8"> > <![CDATA[<assembly > xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 > http://maven.apache.org/xsd/assembly-2.0.0.xsd"> > <id>bin</id> > <formats> > <format>tar.xz</format> > <format>zip</format> > </formats> > <fileSets> > <fileSet> > <directory>${project.build.directory}</directory> > <includes> > <include>*-exe.jar</include> > </includes> > <outputDirectory>bin</outputDirectory> > </fileSet> > <fileSet> > <directory>${binOutputDirectory}</directory> > <outputDirectory>bin</outputDirectory> > <!-- > Set access permissions to `-rwxrwxr-x`, which corresponds to adding > `+x` to a created file. > Manually setting permissions files in the archive is necessary for > building on Windows, > because input files will have lost attributes during the build > process. > --> > <fileMode>0775</fileMode> > </fileSet> > </fileSets> > </assembly>]]> > </echo> > </target> > </configuration> > </execution> > </executions> > </plugin> > {code} > This was requested and finally implemented for Versions Maven Plugin; see > [#258|https://github.com/mojohaus/versions/issues/258] and > [#684|https://github.com/mojohaus/versions/issues/684], along with [_Versions > Maven Plugin rules that are > inheritable_|https://stackoverflow.com/q/72416739] on Stack Overflow. -- This message was sent by Atlassian Jira (v8.20.10#820010)