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.AbstractMojo
Base buildinfo-generating class, for goals related to Reproducible Builds
.buildinfo files.- Since:
- 3.2.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.apache.maven.artifact.handler.manager.ArtifactHandlerManagerprotected FileLocation of the generated buildinfo file.private booleanDetect projects/modules with install or deploy skipped: avoid taking fingerprints.Artifacts to ignore, specified as a glob matching against${groupId}/${filename}, for example*invalid input: '<'/>/*.xml.private booleanIgnore javadoc attached artifacts from buildinfo generation.private StringTimestamp 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.MavenProjectThe Maven project.private booleanMakes 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.RuntimeInformationprotected org.apache.maven.execution.MavenSessionThe current build session instance.Avoid taking fingerprints for modules specified as glob matching against${groupId}/${artifactId}.private List<PathMatcher> private org.apache.maven.toolchain.ToolchainManagerTo obtain a toolchain if possible.Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcopyAggregateToRoot(File aggregate) voidexecute()(package private) abstract voidExecute after buildinfo has been generated for current build (eventually aggregated).generateBuildinfo(boolean mono) Generate buildinfo file.protected org.apache.maven.project.MavenProjectprivate org.apache.maven.project.MavenProjectprivate org.apache.maven.toolchain.Toolchain(package private) static booleanhasBadOutputTimestamp(String outputTimestamp, org.apache.maven.plugin.logging.Log log, org.apache.maven.project.MavenProject project, List<org.apache.maven.project.MavenProject> reactorProjects) private booleanisSkip(org.apache.maven.project.MavenProject project) protected voidskip(org.apache.maven.project.MavenProject last) Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
project
@Component protected org.apache.maven.project.MavenProject projectThe Maven project. -
buildinfoFile
@Parameter(defaultValue="${project.build.directory}/${project.artifactId}-${project.version}.buildinfo", required=true, readonly=true) protected File buildinfoFileLocation of the generated buildinfo file. -
ignoreJavadoc
@Parameter(property="buildinfo.ignoreJavadoc", defaultValue="true") private boolean ignoreJavadocIgnore javadoc attached artifacts from buildinfo generation. -
ignore
Artifacts to ignore, specified as a glob matching against${groupId}/${filename}, for example*invalid input: '<'/>/*.xml. -
detectSkip
@Parameter(property="buildinfo.detect.skip", defaultValue="true") private boolean detectSkipDetect projects/modules with install or deploy skipped: avoid taking fingerprints. -
skipModules
Avoid taking fingerprints for modules specified as glob matching against${groupId}/${artifactId}.- Since:
- 3.5.0
-
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 sessionThe current build session instance. This is used for toolchain manager API calls. -
outputTimestamp
Timestamp 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 toolchainManagerTo 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
-
-
Constructor Details
-
AbstractBuildinfoMojo
public AbstractBuildinfoMojo()
-
-
Method Details
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException- Throws:
org.apache.maven.plugin.MojoExecutionException
-
hasBadOutputTimestamp
-
execute
abstract void execute(Map<org.apache.maven.artifact.Artifact, 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(File aggregate) throws org.apache.maven.plugin.MojoExecutionException - Throws:
org.apache.maven.plugin.MojoExecutionException
-
generateBuildinfo
protected Map<org.apache.maven.artifact.Artifact,String> generateBuildinfo(boolean mono) throws org.apache.maven.plugin.MojoExecutionException Generate 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()
-