in src/main/java/org/apache/maven/plugins/artifact/buildinfo/CheckBuildPlanMojo.java [164:192]
private boolean hasBadOutputTimestamp() {
MavenArchiver archiver = new MavenArchiver();
Date timestamp = archiver.parseOutputTimestamp(outputTimestamp);
if (timestamp == null) {
getLog().error("Reproducible Build not activated by project.build.outputTimestamp property: "
+ "see https://maven.apache.org/guides/mini/guide-reproducible-builds.html");
return true;
} else {
if (getLog().isDebugEnabled()) {
getLog().debug("project.build.outputTimestamp = \"" + outputTimestamp + "\" => "
+ new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX").format(timestamp));
}
// check if timestamp well defined in a project from reactor
boolean parentInReactor = false;
MavenProject reactorParent = project;
while (reactorProjects.contains(reactorParent.getParent())) {
parentInReactor = true;
reactorParent = reactorParent.getParent();
}
String prop = reactorParent.getOriginalModel().getProperties().getProperty("project.build.outputTimestamp");
if (prop == null) {
getLog().error("project.build.outputTimestamp property should not be inherited but defined in "
+ (parentInReactor ? "parent POM from reactor " : "POM ") + reactorParent.getFile());
return true;
}
}
return false;
}