Wednesday, December 28, 2016

internal maven properties

This page extracts a few classical values:
  • ${project.basedir} 
    • This references to the root folder of the module/project (the location where the current pom.xml file is located)
POM properties referencing useful build locations, with default values defined in the Super POM:
  • ${project.build.directory}
    • This represents by default the target folder.
  • ${project.build.outputDirectory}
    • This represents by default the target/classes folder.
  • ${project.build.testOutputDirectory}
    • This represents by default the target/test-classes folder.
  • ${project.build.sourceDirectory}
    • This represents by default the src/main/java folder.
  • ${project.build.testSourceDirectory}
    • This represents by default the src/test/java folder.
You can use further properties like the following:
  • ${project.build.finalName}
    • This is by default defined as ${project.artifactId}-${project.version}.
  • ${project.version}
    • This can be used at locations where you have to write a literal version otherwise, in particular if you are in a multi-modules build for inter modules dependencies.
User Settings
The settings.xml elements could be referenced by using things like this (see also at the Super POM):
  • ${settings.localRepository}
    • which references the location of the local repository. This is by default ${home}/.m2/repository.
Values are evaluated in sequence from different syntaxes:
valueevaluation resultcommon examples
project.*
pom.* (deprecated)
* (deprecated)
POM content (see POM reference)${project.version}
${project.build.finalName}
${project.artifactId}
${project.build.directory}
project.basedir
pom.basedir (deprecated)
basedir (deprecated)
the directory containing the pom.xml file${project.basedir}
project.baseUri
pom.baseUri (deprecated)
the directory containing the pom.xml file as URI${project.baseUri}
build.timestamp
maven.build.timestamp
the UTC timestamp of build start, in yyyy-MM-dd'T'HH:mm:ss'Z' default format, which can be overridden with maven.build.timestamp.format POM property${maven.build.timestamp}
*user properties, set from CLI with -Dproperty=value${skipTests}
*model properties, such as project properties set in the pom${any.key}
maven.homeThe path to the current Maven home.${maven.home}
maven.versionThe version number of the current Maven execution (since 3.0.4). For example, "3.0.5".${maven.version}
maven.build.versionThe full build version of the current Maven execution (since 3.0.4). For example, "Apache Maven 3.2.2 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19T14:51:28+01:00)".${maven.build.version}
*Java system properties (see JDK reference)${user.home}
${java.home}
env.*
*
environment variables${env.PATH}
settings.*Local user settings (see settings reference)${settings.localRepository}