[ 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)