You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (JIRA)" <ji...@apache.org> on 2016/07/08 20:32:11 UTC

[jira] [Commented] (MNG-6059) Important use cases not covered, as child.inherit.append.path affects all children

    [ https://issues.apache.org/jira/browse/MNG-6059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15368404#comment-15368404 ] 

Robert Scholte commented on MNG-6059:
-------------------------------------

There has been quite some discussion about this. Current connection is based on centralized version control (cvs, svn).  But with DVCS this doesn't work anymore. In Maven Core you can see there is some scm specific code which should trigger a sign of smelly code. 
IMHO the connection should not be inherited (nor expanded). 
Who/what is using this URL? Well, maven-release-plugin, but only in the root of the (multimodule) project. The SCM page of the maven-project-info-reports-plugin. But in this case the connection can always be calculated when required.
This attribute was an attempt to stay backwards compatible, but as said: I prefer removal of scm logic in Maven core.

> Important use cases not covered, as child.inherit.append.path affects all children
> ----------------------------------------------------------------------------------
>
>                 Key: MNG-6059
>                 URL: https://issues.apache.org/jira/browse/MNG-6059
>             Project: Maven
>          Issue Type: Bug
>          Components: Inheritance and Interpolation
>         Environment: Apache Maven 3.4.0-SNAPSHOT (227085283b6379038ec16f4cf9ad2e8869cef694; 2016-07-06T21:29:12+02:00)
>            Reporter: Andreas Sewe
>
> 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>):
> {noformat}
> <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>
> {noformat}
> 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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)