TodayILearned
TodayILearned

Reputation: 1500

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

What is the meaning of

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

and

${project.build.directory}

in pom.xml

Upvotes: 92

Views: 217194

Answers (2)

Matthias
Matthias

Reputation: 571

${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

Upvotes: 30

Tunaki
Tunaki

Reputation: 137174

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.

Upvotes: 87

Related Questions