[
https://issues.apache.org/jira/browse/MASSEMBLY-992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Slawomir Jaranowski reassigned MASSEMBLY-992:
---------------------------------------------
Assignee: Slawomir Jaranowski
> 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: next-release
>
>
> 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)