[ https://issues.apache.org/jira/browse/MNG-7562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17616434#comment-17616434 ]
Garret Wilson edited comment on MNG-7562 at 10/12/22 1:50 PM: -------------------------------------------------------------- I [asked about this on Stack Overflow|https://stackoverflow.com/q/73239332], and someone [suggested|https://stackoverflow.com/a/73983784] {{child.licences.append.path="false"}}, which is apparently a mechanism introduced in MNG-6059 (building on MNG-5951) and documented briefly in [Maven Model Builder|https://maven.apache.org/ref/3.8.6/maven-model-builder/]. But this mechanism doesn't seem to prevent inheritance—it only seems to prevent appending a path to the inherited value, unless I'm reading it incorrectly. was (Author: garretwilson): I [asked about this on Stack Overflow|https://stackoverflow.com/q/73239332], and someone [suggested|https://stackoverflow.com/a/73983784] {{child.licences.append.path=false}}, which is apparently a mechanism introduced in MNG-6059 (building on MNG-5951) and documented briefly in [Maven Model Builder|https://maven.apache.org/ref/3.8.6/maven-model-builder/]. But this mechanism doesn't seem to prevent inheritance—it only seems to prevent appending a path to the inherited value, unless I'm reading it incorrectly. > Mechanism for preventing inheritance of sections such as <licence>. > ------------------------------------------------------------------- > > Key: MNG-7562 > URL: https://issues.apache.org/jira/browse/MNG-7562 > Project: Maven > Issue Type: Improvement > Components: Inheritance and Interpolation > Affects Versions: 3.8.6 > Reporter: Garret Wilson > Priority: Major > > There needs to a way in the Maven POM to prevent an element from being > inherited altogether in child POMs. > We are currently publishing a Maven POM that is useful to serve as the parent > POM for various projects. Some of the projects that use the POM will be open > source, but some will not be. To designate our parent POM as open source, we > include this: > {code:xml} > <licenses> > <license> > <name>Apache-2.0</name> > <url>https://www.apache.org/licenses/LICENSE-2.0</url> > <distribution>repo</distribution> > </license> > </licenses> > {code} > This essentially says, "this project is open source". > Unfortunately because of [POM > inheritance|https://maven.apache.org/pom.html#Inheritance], any project that > uses this parent POM will also effectively be saying "this project is also > open source", because the effective POM of all descendant projects will also > include this same license section. > Developers could try to remember to include some {{<licenses>}} section to > override this license, but the whole point of the parent POM is that it > should given developers less to do, not more. Besides, some private projects > (even ours) might not wish to indicate a license at all! > There needs to be a way for our public parent POM to indicate that it is open > source without effectively making all child projects open source as well > through POM inheritance. Preventing the {{<licenses>}} section from being > inherited is one example. -- This message was sent by Atlassian Jira (v8.20.10#820010)