Where is the list of predefined Maven properties
Solution 1:
Do you mean this one?
https://web.archive.org/web/20150520200505/https://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide
I also moved its content to a GitHub repo:
https://github.com/cko/predefined_maven_properties/blob/master/README.md
Solution 2:
Take a look at section 9.2.: Maven Properties of the free online book Maven: The Complete Reference.
Solution 3:
Looking at the "effective POM" will probably help too. For instance, if you wanted to know what the path is for ${project.build.sourceDirectory}
you would find the related XML in the effective POM, such as:
<project>
<build>
<sourceDirectory>/my/path</sourceDirectory>
Also helpful - you can do a real time evaluation of properties via the command line execution of mvn help:evaluate
while in the same dir as the POM.
Solution 4:
I think the best place to look is the Super POM.
As an example, at the time of writing, the linked reference shows some of the properties between lines 32 - 48.
The interpretation of this is to follow the XPath as a .
delimited property.
So, for example:
${project.build.testOutputDirectory}
== ${project.build.directory}/test-classes
And:
${project.build.directory}
== ${project.basedir}/target
Thus combining them, we find:
${project.build.testOutputDirectory}
== ${project.basedir}/target/test-classes
(To reference the resources directory(s), see this stackoverflow question)
<project>
<modelVersion>4.0.0</modelVersion>
.
.
.
<build>
<directory>${project.basedir}/target</directory>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
.
.
.
</build>
.
.
.
</project>