You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Christian Schulte (JIRA)" <ji...@apache.org> on 2016/06/17 20:20:05 UTC

[jira] [Commented] (MNG-5305) Deprecate relativePath

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

Christian Schulte commented on MNG-5305:
----------------------------------------

If you add an empty {{<relativePath/>}} element to your {{<parent>}} declarations, you get the behaviour you are asking for. There are use cases the {{<relativePath>}} is needed for. That is checking out a multi module project and executing some phase from the default lifecycle before {{install}}. We need to support {{mvn compile}} or {{mvn verify}} without any of the artifacts being available in some repository (local or remote). I see no issue with searching a parent pom on disk. It's documented and people should just know what they do. I think Maven is doing the right thing here. If you checkout only a single module, it will resolve the parent(s) from the repository, if you checkout the complete multi-module project it will resolve the parent(s) from that project structure.


> Deprecate relativePath
> ----------------------
>
>                 Key: MNG-5305
>                 URL: https://issues.apache.org/jira/browse/MNG-5305
>             Project: Maven
>          Issue Type: Improvement
>          Components: Inheritance and Interpolation
>            Reporter: Reto Gmuer
>
> The concept of relativePath is alien to the overall Maven design of having project directory that only depends on entities in the repositories. With relative-paths the build might yield to different results depending on were a project folder is located in the local filesystem.
> The parent POM resolution was changed in Maven 3. Because of this explicit relativePaths need to be specified  more often for reactor builds to be built in the correct order. The reason for this (according to Maven 3.x compatibility note) is to improve consistency: "In Maven 2, building the child project in isolation could fail while the reactor build would succeed to resolve the parent.". However this behaviour is inconsistent with the resolution of the other dependencies, in fact the above is true for any Maven version when a dependency that is part of the reactor is not available in a suitable versions in the repository: in this case the build of the individual project fails while the build of the whole reactor succeeds.
> Because of this relativePath should be marked as deprecated and the parent should be treated like a dependency when computing the build order of reactor projects.



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