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

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

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.6.0
    • Fix Version/s: 3.6.1
    • Labels:
      None
    • Environment:
      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

              • Assignee:
                hboutemy Hervé Boutemy
                Reporter:
                sewe Andreas Sewe
              • Votes:
                1 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: