Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-6059

Important use cases not covered, as child.inherit.append.path affects all children

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.6.0
    • 3.6.1
    • None
    • Apache Maven 3.4.0-SNAPSHOT (227085283b6379038ec16f4cf9ad2e8869cef694; 2016-07-06T21:29:12+02:00)

    Description

      The child.inherit.append.path attribute introduced with MNG-5951 unfortunately does not support the use case where the children of the element with the attribute should follow different inheritance rules. Take a typical configuration for Github, for example (taken from <http://central.sonatype.org/pages/requirements.html>):

      <scm>
        <connection>scm:git:git://github.com/simpligility/ossrh-demo.git</connection>
        <developerConnection>scm:git:ssh://github.com:simpligility/ossrh-demo.git</developerConnection>
        <url>http://github.com/simpligility/ossrh-demo/tree/master</url>
      </scm>
      

      If the ossrh-demo.git repository contains a child module called some-module, then that child’s scm/url should become http://github.com/simpligility/ossrh-demo/tree/master/some-module as per the normal inheritance rules, but both the scm/connection and scm/developerConnection URLs should remain unchanged.

      Unfortunately, this is not possible with child.inherit.append.path, which acts on all children simultaneously.

      IMHO, this is a conceptual problem. In particular, setting child.inherit.append.path on the root element to just control a single child (project/url) feels wrong, as the attribute is in all likelihood not even located close to the <url> element it controls.

      Implemented Solution

      <project child.project.url.inherit.append.path="false">
        <url>...</url>
        <scm child.scm.connection.inherit.append.path="false"
             child.scm.developerConnection.inherit.append.path="false"
             child.scm.url.inherit.append.path="false">
          <connection>...</connection>
          <developerConnection>...</developerConnection>
          <url>...</url>
        </scm>
        <distributionManagement>
          <site child.site.url.inherit.append.path="false">
            <url>...</url>
          </site>
        </distributionManagement>
      </project>

      Attachments

        Issue Links

          Activity

            People

              hboutemy Herve Boutemy
              sewe Andreas Sewe
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: