[ https://issues.apache.org/jira/browse/MASSEMBLY-992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17797911#comment-17797911 ]
ASF GitHub Bot commented on MASSEMBLY-992: ------------------------------------------ slawekjaranowski opened a new pull request, #174: URL: https://github.com/apache/maven-assembly-plugin/pull/174 Following this checklist to help us incorporate your contribution quickly and easily: - [x] Make sure there is a [JIRA issue](https://issues.apache.org/jira/browse/MASSEMBLY) filed for the change (usually before you start working on it). Trivial changes like typos do not require a JIRA issue. Your pull request should address just this issue, without pulling in other changes. - [x] Each commit in the pull request should have a meaningful subject line and body. - [x] Format the pull request title like `[MASSEMBLY-XXX] - Fixes bug in ApproximateQuantiles`, where you replace `MASSEMBLY-XXX` with the appropriate JIRA issue. Best practice is to use the JIRA issue title in the pull request title and in the first line of the commit message. - [ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why. - [x] Run `mvn clean verify` to make sure basic checks pass. A more thorough check will be performed on your pull request automatically. - [x] You have run the integration tests successfully (`mvn -Prun-its clean verify`). If your pull request is about ~20 lines of code you don't need to sign an [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf) if you are unsure please ask on the developers list. To make clear that you license your contribution under the [Apache License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0) you have to acknowledge this by using the following check-box. - [x] I hereby declare this contribution to be licenced under the [Apache License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0) - [x] In any other case, please file an [Apache Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf). > 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)