Meaning of ${project.basedir} in pom.xml

JavaMavenpom.xml

Java Problem Overview


What is the meaning of

<directory>${project.basedir}</directory>

and

${project.build.directory}

in pom.xml

Java Solutions


Solution 1 - Java

There are a set of available properties to all Maven projects.

From Introduction to the POM: >project.basedir: The directory that the current project resides in.

This means this points to where your Maven projects resides on your system. It corresponds to the location of the pom.xml file. If your POM is located inside /path/to/project/pom.xml then this property will evaluate to /path/to/project.

Some properties are also inherited from the Super POM, which is the case for project.build.directory. It is the value inside the <project><build><directory> element of the POM. You can get a description of all those values by looking at the Maven model. For project.build.directory, it is: > The directory where all files generated by the build are placed. The default value is target.

This is the directory that will hold every generated file by the build.

Solution 2 - Java

${project.basedir} is the root directory of your project.

${project.build.directory} is equivalent to ${project.basedir}/target

as it is defined here: https://github.com/apache/maven/blob/trunk/maven-model-builder/src/main/resources/org/apache/maven/model/pom-4.0.0.xml#L53

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionTodayILearnedView Question on Stackoverflow
Solution 1 - JavaTunakiView Answer on Stackoverflow
Solution 2 - JavaMatthiasView Answer on Stackoverflow