Class AbstractBuildinfoMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.apache.maven.plugins.artifact.buildinfo.AbstractBuildinfoMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo
- Direct Known Subclasses:
BuildinfoMojo,CompareMojo
public abstract class AbstractBuildinfoMojo extends org.apache.maven.plugin.AbstractMojoBase buildinfo-generating class, for goals related to Reproducible Builds.buildinfofiles.- Since:
- 3.2.0
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.maven.artifact.handler.manager.ArtifactHandlerManagerartifactHandlerManagerprotected java.io.FilebuildinfoFileLocation of the generated buildinfo file.private booleandetectSkipDetect projects/modules with install or deploy skipped: avoid taking fingerprints.private java.util.List<java.lang.String>ignoreArtifacts to ignore, specified as a glob matching against${groupId}/${filename}, for example*>/*.xml.private booleanignoreJavadocIgnore javadoc attached artifacts from buildinfo generation.private java.lang.StringoutputTimestampTimestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-MM-dd'T'HH:mm:ssXXXor as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).protected org.apache.maven.project.MavenProjectprojectThe Maven project.private booleanreproducibleMakes the generated.buildinfofile reproducible, by dropping detailed environment recording: OS will be recorded as "Windows" or "Unix", JVM version as major version only.protected org.apache.maven.rtinfo.RuntimeInformationrtInformationprotected org.apache.maven.execution.MavenSessionsessionThe current build session instance.private java.util.List<java.lang.String>skipModulesAvoid taking fingerprints for modules specified as glob matching against${groupId}/${artifactId}.private java.util.List<java.nio.file.PathMatcher>skipModulesMatcherprivate org.apache.maven.toolchain.ToolchainManagertoolchainManagerTo obtain a toolchain if possible.
-
Constructor Summary
Constructors Constructor Description AbstractBuildinfoMojo()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidcopyAggregateToRoot(java.io.File aggregate)voidexecute()(package private) abstract voidexecute(java.util.Map<org.apache.maven.artifact.Artifact,java.lang.String> artifacts)Execute after buildinfo has been generated for current build (eventually aggregated).protected java.util.Map<org.apache.maven.artifact.Artifact,java.lang.String>generateBuildinfo(boolean mono)Generate buildinfo file.protected org.apache.maven.project.MavenProjectgetExecutionRoot()private org.apache.maven.project.MavenProjectgetLastProject()private org.apache.maven.toolchain.ToolchaingetToolchain()(package private) static booleanhasBadOutputTimestamp(java.lang.String outputTimestamp, org.apache.maven.plugin.logging.Log log, org.apache.maven.project.MavenProject project, java.util.List<org.apache.maven.project.MavenProject> reactorProjects)private booleanisSkip(org.apache.maven.project.MavenProject project)protected voidskip(org.apache.maven.project.MavenProject last)
-
-
-
Field Detail
-
project
@Component protected org.apache.maven.project.MavenProject project
The Maven project.
-
buildinfoFile
@Parameter(defaultValue="${project.build.directory}/${project.artifactId}-${project.version}.buildinfo", required=true, readonly=true) protected java.io.File buildinfoFileLocation of the generated buildinfo file.
-
ignoreJavadoc
@Parameter(property="buildinfo.ignoreJavadoc", defaultValue="true") private boolean ignoreJavadocIgnore javadoc attached artifacts from buildinfo generation.
-
ignore
@Parameter(property="buildinfo.ignore", defaultValue="") private java.util.List<java.lang.String> ignoreArtifacts to ignore, specified as a glob matching against${groupId}/${filename}, for example*>/*.xml.
-
detectSkip
@Parameter(property="buildinfo.detect.skip", defaultValue="true") private boolean detectSkipDetect projects/modules with install or deploy skipped: avoid taking fingerprints.
-
skipModules
@Parameter(property="buildinfo.skipModules") private java.util.List<java.lang.String> skipModules
Avoid taking fingerprints for modules specified as glob matching against${groupId}/${artifactId}.- Since:
- 3.5.0
-
skipModulesMatcher
private java.util.List<java.nio.file.PathMatcher> skipModulesMatcher
-
reproducible
@Parameter(property="buildinfo.reproducible", defaultValue="false") private boolean reproducibleMakes the generated.buildinfofile reproducible, by dropping detailed environment recording: OS will be recorded as "Windows" or "Unix", JVM version as major version only.- Since:
- 3.1.0
-
session
@Component protected org.apache.maven.execution.MavenSession session
The current build session instance. This is used for toolchain manager API calls.
-
outputTimestamp
@Parameter(defaultValue="${project.build.outputTimestamp}") private java.lang.String outputTimestampTimestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-MM-dd'T'HH:mm:ssXXXor as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).- Since:
- 3.2.0
-
toolchainManager
@Component private org.apache.maven.toolchain.ToolchainManager toolchainManager
To obtain a toolchain if possible.
-
artifactHandlerManager
@Component protected org.apache.maven.artifact.handler.manager.ArtifactHandlerManager artifactHandlerManager
-
rtInformation
@Component protected org.apache.maven.rtinfo.RuntimeInformation rtInformation
-
-
Method Detail
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException- Throws:
org.apache.maven.plugin.MojoExecutionException
-
hasBadOutputTimestamp
static boolean hasBadOutputTimestamp(java.lang.String outputTimestamp, org.apache.maven.plugin.logging.Log log, org.apache.maven.project.MavenProject project, java.util.List<org.apache.maven.project.MavenProject> reactorProjects)
-
execute
abstract void execute(java.util.Map<org.apache.maven.artifact.Artifact,java.lang.String> artifacts) throws org.apache.maven.plugin.MojoExecutionExceptionExecute after buildinfo has been generated for current build (eventually aggregated).- Parameters:
artifacts- a Map of artifacts added to the build info with their associated property key prefix (outputs.[#module.].#artifact)- Throws:
org.apache.maven.plugin.MojoExecutionException
-
skip
protected void skip(org.apache.maven.project.MavenProject last) throws org.apache.maven.plugin.MojoExecutionException- Throws:
org.apache.maven.plugin.MojoExecutionException
-
copyAggregateToRoot
protected void copyAggregateToRoot(java.io.File aggregate) throws org.apache.maven.plugin.MojoExecutionException- Throws:
org.apache.maven.plugin.MojoExecutionException
-
generateBuildinfo
protected java.util.Map<org.apache.maven.artifact.Artifact,java.lang.String> generateBuildinfo(boolean mono) throws org.apache.maven.plugin.MojoExecutionExceptionGenerate buildinfo file.- Parameters:
mono- is it a mono-module build?- Returns:
- a Map of artifacts added to the build info with their associated property key prefix
(
outputs.[#module.].#artifact) - Throws:
org.apache.maven.plugin.MojoExecutionException- if anything goes wrong
-
getExecutionRoot
protected org.apache.maven.project.MavenProject getExecutionRoot()
-
getLastProject
private org.apache.maven.project.MavenProject getLastProject()
-
isSkip
private boolean isSkip(org.apache.maven.project.MavenProject project)
-
getToolchain
private org.apache.maven.toolchain.Toolchain getToolchain()
-
-