Package org.apache.maven.shared.archiver
Class MavenArchiver
java.lang.Object
org.apache.maven.shared.archiver.MavenArchiver
MavenArchiver class.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidconfigureReproducibleBuild(String outputTimestamp) Configure Reproducible Builds archive creation if a timestamp is provided.voidcreateArchive(org.apache.maven.api.Session session, org.apache.maven.api.Project project, MavenArchiveConfiguration archiveConfiguration) createArchive.voiddoCreateArchive(org.apache.maven.api.Session session, org.apache.maven.api.Project project, MavenArchiveConfiguration archiveConfiguration) protected org.codehaus.plexus.archiver.jar.ManifestdoGetManifest(org.apache.maven.api.Session session, org.apache.maven.api.Project project, ManifestConfiguration config, Map<String, String> entries) org.codehaus.plexus.archiver.jar.JarArchiverGetter for the fieldarchiver.org.codehaus.plexus.archiver.jar.ManifestgetManifest(org.apache.maven.api.Project project, ManifestConfiguration config) Return a pre-configured manifest.org.codehaus.plexus.archiver.jar.ManifestgetManifest(org.apache.maven.api.Session session, org.apache.maven.api.Project project, ManifestConfiguration config) protected org.codehaus.plexus.archiver.jar.ManifestgetManifest(org.apache.maven.api.Session session, org.apache.maven.api.Project project, ManifestConfiguration config, Map<String, String> entries) getManifest.org.codehaus.plexus.archiver.jar.ManifestgetManifest(org.apache.maven.api.Session session, org.apache.maven.api.Project project, MavenArchiveConfiguration config) getManifest.parseBuildOutputTimestamp(String outputTimestamp) Parse output timestamp configured for Reproducible Builds' archive entries.voidsetArchiver(org.codehaus.plexus.archiver.jar.JarArchiver archiver) Setter for the fieldarchiver.voidsetBuildJdkSpecDefaultEntry(boolean buildJdkSpecDefaultEntry) Add "Build-Jdk-Spec" entry as part of default manifest entries (true by default).voidsetCreatedBy(String description, String groupId, String artifactId) Define a value for "Created By" entry.voidsetOutputFile(File outputFile) setOutputFile.
-
Field Details
-
SIMPLE_LAYOUT
The simple layout.- See Also:
-
REPOSITORY_LAYOUT
Repository layout.- See Also:
-
SIMPLE_LAYOUT_NONUNIQUE
simple layout non unique.- See Also:
-
REPOSITORY_LAYOUT_NONUNIQUE
Repository layout non unique.- See Also:
-
-
Constructor Details
-
MavenArchiver
public MavenArchiver()
-
-
Method Details
-
getArchiver
public org.codehaus.plexus.archiver.jar.JarArchiver getArchiver()Getter for the field
archiver.- Returns:
JarArchiver
-
setArchiver
public void setArchiver(org.codehaus.plexus.archiver.jar.JarArchiver archiver) Setter for the field
archiver.- Parameters:
archiver-JarArchiver
-
setOutputFile
setOutputFile.
- Parameters:
outputFile- Set output file.
-
setCreatedBy
Define a value for "Created By" entry.- Parameters:
description- description of the plugin, like "Maven Source Plugin"groupId- groupId where to get version in pom.propertiesartifactId- artifactId where to get version in pom.properties- Since:
- 3.5.0
-
setBuildJdkSpecDefaultEntry
public void setBuildJdkSpecDefaultEntry(boolean buildJdkSpecDefaultEntry) Add "Build-Jdk-Spec" entry as part of default manifest entries (true by default). For plugins whose output is not impacted by JDK release (like maven-source-plugin), adding Jdk spec adds unnecessary requirement on JDK version used at build to get reproducible result.- Parameters:
buildJdkSpecDefaultEntry- the value for "Build-Jdk-Spec" entry- Since:
- 3.5.0
-
parseBuildOutputTimestamp
Parse output timestamp configured for Reproducible Builds' archive entries.Either as
DateTimeFormatter.ISO_OFFSET_DATE_TIMEor as a number representing seconds since the epoch (like SOURCE_DATE_EPOCH).- Parameters:
outputTimestamp- the value of${project.build.outputTimestamp}(may benull)- Returns:
- the parsed timestamp as an
Optional<Instant>,emptyif input isnullor input contains only 1 character (not a number) - Throws:
IllegalArgumentException- if the outputTimestamp is neither ISO 8601 nor an integer, or it's not within the valid range 1980-01-01T00:00:02Z to 2099-12-31T23:59:59Z as defined by ZIP application note, section 4.4.6.- Since:
- 3.6.0
-
configureReproducibleBuild
Configure Reproducible Builds archive creation if a timestamp is provided.- Parameters:
outputTimestamp- the value ofproject.build.outputTimestamp(may benull)- Since:
- 3.6.0
- See Also: