pom.*
properties are deprecated. Use project.*
instead!Built in properties
${basedir
} represents the directory containing pom.xml ${version
} equivalent to ${project.version
} or ${pom.version
} Pom/Project properties
All elements in the pom.xml, can be referenced with theproject.
prefix or using pom.
as prefix. This list is just an example of some commonly used elements. ${project.build.directory}
results in the path to your "target" dir, this is the same as ${pom.project.build.directory}
${project.build.
outputD
irectory
}
results in the path to your "target/classes" dir ${project.name}
or ${pom.name}
refers to the name of the project. ${project.version}
or ${pom.version}
refers to the version of the project. ${project.build.finalName}
refers to the final name of the file created when the built project is packaged ${project.artifactId}
refers to the artifact idLocal user settings
Similarly, values in the user's settings.xml can be referenced using property names withsettings.
prefix.${settings.localRepository}
refers to the path of the user's local repository. ${maven.repo.local}
also works for backward compatibility with maven1 ?? Environment variables
Environment variables can be referenced using theenv
prefix${env.M2_HOME}
returns the Maven2 installation path. ${java.home}
specifies the path to the current JRE_HOME environment use with relative paths to get for example:<jvm>${java.home}..//bin//java.exe</jvm>
Java system properties
All Java System Properties defined by the JVM.Custom properties in the POM
User defined properties in the pom.xml.
<project>
...
<properties>
<my.filter.value>hello</my.filter.value>
</properties>
...
</project>
${my.filter.value}
will result in hello
if you inserted the above XML fragment in your pom.xml Parent Project variables
How can parent project variables be accessed? You can use the prefix:${project.parent}
. A good way to determine possible variables is to have a look directly at the API. I'm currently using Maven 2.2.1, and to access the Parent you can use ${project.parent}
. This will return an org.apache.maven.project.MavenProject instance. To access the parent version:
${parent.version}
.Reflection Properties
The pattern${someX.someY.someZ}
can simply sometimes mean getSomeX().getSomeY().getSomeZ()
. Thus, properties such as ${project.build.directory
} is translated to getProject().getBuild().getDirectory()