[ https://issues.apache.org/jira/browse/MASSEMBLY-992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17737988#comment-17737988 ]
Michael Osipov commented on MASSEMBLY-992: ------------------------------------------ This auto-attaches: [https://github.com/michael-o/michael-o-parent/blob/7b828415464d4d7bc73ac88d9fba937540982457/pom.xml#L267-L284] You can create a JAR with your assembly descriptor This makes it available in the child: [https://github.com/michael-o/tomcatspnegoad/blob/a22c3a4b0f7bc6592d4fd53268137599d84e6bf5/pom.xml#L101-L125] Package your descriptor, reference it as a dependency for the plugin in your child, it is available in you current reactor. > 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 > Priority: Major > Fix For: waiting-for-feedback > > > 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)