You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Michael Osipov (Jira)" <ji...@apache.org> on 2021/01/28 13:24:00 UTC

[jira] [Commented] (MNG-7088) A property which always points to pom.xml own directory

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

Michael Osipov commented on MNG-7088:
-------------------------------------

First of all, a parent is never logically in the same or below physical level as the child. This is against the convention. Please convert your case to a minimal sample project to shows the problem.

> A property which always points to pom.xml own directory
> -------------------------------------------------------
>
>                 Key: MNG-7088
>                 URL: https://issues.apache.org/jira/browse/MNG-7088
>             Project: Maven
>          Issue Type: New Feature
>    Affects Versions: 3.6.3
>            Reporter: Monkey
>            Priority: Major
>
> Maven docs say that ${project.basedir} points to the directory containing the pom.xml file, but does not say, which pom.xml file. As it turns out in the example below, it can be the file in the directory where mvn is called, and not really the file where the property is used.
> If the problems as the one below cannot be resolved cleanly,  would adding a property, which always points to pom.xml own directory, help?
> I am sorry for the formatting, it is the system which puts new paragraphs and brackets for whatever reason.
> I have a Maven child project in a directory "child". I have also a parent project "local-lib" in the directory "child/local-lib" which contains a repository with jars. The repository is declared in "child/local-lib/pom.xml" as
> {code:xml}
> <repositories>
>   <repository>
>     <id>repo</id>
>     <url>[file:///$]}}{{{project.basedir}/repo</url>
>   </repository>
> </repositories>
> {code}
>  
>  The child project has "child/pom.xml" where it refers to its parent as follows:
>  
> {code:xml}
> <parent>
>   <groupId>someGroup</groupId>
>   <artifactId>local-lib</artifactId>
>   <version>0.0.1</version>
>   <relativePath>./local-lib</relativePath>
> </parent>
> {code}
>  
>  When I type "mvn clean install" in the child project, that is, in the directory "child", the child project attempts to search for a non-existing repository "child/repo", instead of "child/local-lib/repo". However, replacing "${project.basedir}" in "child/local-lib/pom.xml" with the full path to "child/local-lib" on my disk makes the child project use the correct repository child/local-lib/repo. This in turn, placed in child/local-lib/pom.xml as before, but with additional "local-lib":
>  
> {code:xml}
> <repositories>
>   <repository>
>     <id>repo</id>
>     <url>[file:///$]{project.basedir}/local-lib/repo</url>
>   </repository>
> </repositories>
> {code}
> works this time correctly if I use maven from the directory "child", but not if I use directly "child/local-lib/pom.xml" from "child/local-lib". The latter creates a path with local-lib included twice.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)