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

Monkey commented on MNG-7088:
-----------------------------

Excuse me, Michael. Of course, it points to a directory. I wanted to ask, does 
it point to the directory of the project:

- which is configured by the file pom.xml, in which the property instance 
occurs, i.e. where the property is evaluated.
- or which is configured by the first pom.xml open by Maven.

If the latter is true in the case of ${project.basedir}, do Maven has another 
property, which does the former. If not, then is there a clean way of accessing 
whatever resources (repositories, etc) which are located in the same directory 
as a given pom.xml. A way which does not rely on e.g. the relative placement of 
projects directories, which can eventually change.


> 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
>             Fix For: waiting-for-feedback
>
>
> 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)

Reply via email to