Garret Wilson created MASSEMBLY-992:
---------------------------------------
Summary: 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
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:
{code:xml}
<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>
<!-- … -->
<fileMode>0775</fileMode>
</fileSet>
</fileSets>
</assembly>]]>
</echo>
</target>
{code}
This was requested and finally implemented for Versions Maven Plugin; see
[#258|https://github.com/mojohaus/versions/issues/258] and
[#685|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)