maven-javadoc-plugin fails with: Text '${timestamp}' could not be parsed at index 0
Problem
Your maven build fails with an error like:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.3.0:jar
(attach-javadocs) on project io.wcm.samples.core:
Execution attach-javadocs of goal org.apache.maven.plugins:maven-javadoc-plugin:3.3.0:jar
failed: Text '${timestamp}' could not be parsed at index 0 -> [Help 1]
Solution
This may happen especially after updating to global-parent
38 or aem-global-parent
1.5.6 which updates to maven-javadoc-plugin
3.3.0.
Source of the problem is a property definition like this in your POM:
<project.build.outputTimestamp>${timestamp}</project.build.outputTimestamp>
It sets the “reproducable build” timestamp to a maven variable. This fails with maven maven-javadoc-plugin
3.3.0 even if the referenced variable contains a valid timestamp.
The solution is to use a real timestamp like:
<project.build.outputTimestamp>2021-05-27T00:00:00Z</project.build.outputTimestamp>
As by now all current maven plugins used for releases (maven-release-plugin
, gitflow-maven-plugin
) fully support updating this property during the release process, it does not longer make sense to use a variable reference in it.