You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Garret Wilson (Jira)" <ji...@apache.org> on 2022/10/12 13:51:00 UTC

[jira] [Comment Edited] (MNG-7562) Mechanism for preventing inheritance of sections such as .

    [ 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)