Class MavenArchiver

java.lang.Object
org.apache.maven.archiver.MavenArchiver

public class MavenArchiver extends Object

MavenArchiver class.

Version:
$Id: $Id
  • Field Details

    • CREATED_BY

      private static final String CREATED_BY
      See Also:
    • SIMPLE_LAYOUT

      public static final String SIMPLE_LAYOUT
      The simply layout.
      See Also:
    • REPOSITORY_LAYOUT

      public static final String REPOSITORY_LAYOUT
      Repository layout.
      See Also:
    • SIMPLE_LAYOUT_NONUNIQUE

      public static final String SIMPLE_LAYOUT_NONUNIQUE
      simple layout non unique.
      See Also:
    • REPOSITORY_LAYOUT_NONUNIQUE

      public static final String REPOSITORY_LAYOUT_NONUNIQUE
      Repository layout non unique.
      See Also:
    • DATE_MIN

      private static final Instant DATE_MIN
    • DATE_MAX

      private static final Instant DATE_MAX
    • ARTIFACT_EXPRESSION_PREFIXES

      private static final List<String> ARTIFACT_EXPRESSION_PREFIXES
    • archiver

      private org.codehaus.plexus.archiver.jar.JarArchiver archiver
    • archiveFile

      private File archiveFile
    • createdBy

      private String createdBy
    • buildJdkSpecDefaultEntry

      private boolean buildJdkSpecDefaultEntry
  • Constructor Details

    • MavenArchiver

      public MavenArchiver()
  • Method Details

    • isValidModuleName

      static boolean isValidModuleName(String name)
    • getManifest

      public org.codehaus.plexus.archiver.jar.Manifest getManifest(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, MavenArchiveConfiguration config) throws org.codehaus.plexus.archiver.jar.ManifestException, org.apache.maven.artifact.DependencyResolutionRequiredException

      getManifest.

      Parameters:
      session - the Maven Session
      project - the Maven Project
      config - the MavenArchiveConfiguration
      Returns:
      the Manifest
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException - in case of a failure
      org.apache.maven.artifact.DependencyResolutionRequiredException - resolution failure
    • getManifest

      public org.codehaus.plexus.archiver.jar.Manifest getManifest(org.apache.maven.project.MavenProject project, ManifestConfiguration config) throws org.codehaus.plexus.archiver.jar.ManifestException, org.apache.maven.artifact.DependencyResolutionRequiredException
      Return a pre-configured manifest.
      Parameters:
      project - MavenProject
      config - ManifestConfiguration
      Returns:
      Manifest
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException - Manifest exception.
      org.apache.maven.artifact.DependencyResolutionRequiredException - Dependency resolution exception.
    • getManifest

      public org.codehaus.plexus.archiver.jar.Manifest getManifest(org.apache.maven.execution.MavenSession mavenSession, org.apache.maven.project.MavenProject project, ManifestConfiguration config) throws org.codehaus.plexus.archiver.jar.ManifestException, org.apache.maven.artifact.DependencyResolutionRequiredException

      getManifest.

      Parameters:
      mavenSession - MavenSession
      project - MavenProject
      config - ManifestConfiguration
      Returns:
      Manifest
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException - the manifest exception
      org.apache.maven.artifact.DependencyResolutionRequiredException - the dependency resolution required exception
    • addManifestAttribute

      private void addManifestAttribute(org.codehaus.plexus.archiver.jar.Manifest manifest, Map<String,String> map, String key, String value) throws org.codehaus.plexus.archiver.jar.ManifestException
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException
    • addManifestAttribute

      private void addManifestAttribute(org.codehaus.plexus.archiver.jar.Manifest manifest, String key, String value) throws org.codehaus.plexus.archiver.jar.ManifestException
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException
    • getManifest

      protected org.codehaus.plexus.archiver.jar.Manifest getManifest(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, ManifestConfiguration config, Map<String,String> entries) throws org.codehaus.plexus.archiver.jar.ManifestException, org.apache.maven.artifact.DependencyResolutionRequiredException

      getManifest.

      Parameters:
      session - MavenSession
      project - MavenProject
      config - ManifestConfiguration
      entries - The entries.
      Returns:
      Manifest
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException - the manifest exception
      org.apache.maven.artifact.DependencyResolutionRequiredException - the dependency resolution required exception
    • handleExtraExpression

      private void handleExtraExpression(org.apache.maven.artifact.Artifact artifact, List<org.codehaus.plexus.interpolation.ValueSource> valueSources)
    • handleExtensions

      private void handleExtensions(org.apache.maven.project.MavenProject project, Map<String,String> entries, org.codehaus.plexus.archiver.jar.Manifest m) throws org.codehaus.plexus.archiver.jar.ManifestException
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException
    • handleImplementationEntries

      private void handleImplementationEntries(org.apache.maven.project.MavenProject project, Map<String,String> entries, org.codehaus.plexus.archiver.jar.Manifest m) throws org.codehaus.plexus.archiver.jar.ManifestException
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException
    • handleSpecificationEntries

      private void handleSpecificationEntries(org.apache.maven.project.MavenProject project, Map<String,String> entries, org.codehaus.plexus.archiver.jar.Manifest m) throws org.codehaus.plexus.archiver.jar.ManifestException
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException
    • addCustomEntries

      private void addCustomEntries(org.codehaus.plexus.archiver.jar.Manifest m, Map<String,String> entries, ManifestConfiguration config) throws org.codehaus.plexus.archiver.jar.ManifestException
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException
    • 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

      public void setOutputFile(File outputFile)

      setOutputFile.

      Parameters:
      outputFile - Set output file.
    • createArchive

      public void createArchive(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, MavenArchiveConfiguration archiveConfiguration) throws org.codehaus.plexus.archiver.jar.ManifestException, IOException, org.apache.maven.artifact.DependencyResolutionRequiredException

      createArchive.

      Parameters:
      session - MavenSession
      project - MavenProject
      archiveConfiguration - MavenArchiveConfiguration
      Throws:
      org.codehaus.plexus.archiver.ArchiverException - Archiver Exception.
      org.codehaus.plexus.archiver.jar.ManifestException - Manifest Exception.
      IOException - IO Exception.
      org.apache.maven.artifact.DependencyResolutionRequiredException - Dependency resolution exception.
    • handleDefaultEntries

      private void handleDefaultEntries(org.codehaus.plexus.archiver.jar.Manifest m, Map<String,String> entries) throws org.codehaus.plexus.archiver.jar.ManifestException
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException
    • handleBuildEnvironmentEntries

      private void handleBuildEnvironmentEntries(org.apache.maven.execution.MavenSession session, org.codehaus.plexus.archiver.jar.Manifest m, Map<String,String> entries) throws org.codehaus.plexus.archiver.jar.ManifestException
      Throws:
      org.codehaus.plexus.archiver.jar.ManifestException
    • findArtifactWithFile

      private org.apache.maven.artifact.Artifact findArtifactWithFile(Set<org.apache.maven.artifact.Artifact> artifacts, File file)
    • getCreatedByVersion

      private static String getCreatedByVersion(String groupId, String artifactId)
    • loadOptionalProperties

      private static Properties loadOptionalProperties(InputStream inputStream)
    • setCreatedBy

      public void setCreatedBy(String description, String groupId, String artifactId)
      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.properties
      artifactId - artifactId where to get version in pom.properties
      Since:
      3.5.0
    • createdBy

      private String createdBy(String description, String groupId, String artifactId)
    • 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
    • parseOutputTimestamp

      @Deprecated public Date parseOutputTimestamp(String outputTimestamp)
      Deprecated.
      Parse output timestamp configured for Reproducible Builds' archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH.
      Parameters:
      outputTimestamp - the value of ${project.build.outputTimestamp} (may be null)
      Returns:
      the parsed timestamp, may be null if null input or input contains only 1 character
      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
      Since:
      3.5.0
    • configureReproducible

      @Deprecated public Date configureReproducible(String outputTimestamp)
      Deprecated.
      Configure Reproducible Builds archive creation if a timestamp is provided.
      Parameters:
      outputTimestamp - the value of ${project.build.outputTimestamp} (may be null)
      Returns:
      the parsed timestamp as Date
      Since:
      3.5.0
      See Also:
    • parseBuildOutputTimestamp

      public static Optional<Instant> parseBuildOutputTimestamp(String outputTimestamp)
      Parse output timestamp configured for Reproducible Builds' archive entries.

      Either as DateTimeFormatter.ISO_OFFSET_DATE_TIME or as a number representing seconds since the epoch (like SOURCE_DATE_EPOCH).

      Parameters:
      outputTimestamp - the value of ${project.build.outputTimestamp} (may be null)
      Returns:
      the parsed timestamp as an Optional<Instant>, empty if input is null or 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
      Since:
      3.6.0
    • isNumeric

      private static boolean isNumeric(String str)
    • configureReproducibleBuild

      public void configureReproducibleBuild(String outputTimestamp)
      Configure Reproducible Builds archive creation if a timestamp is provided.
      Parameters:
      outputTimestamp - the value of project.build.outputTimestamp (may be null)
      Since:
      3.6.0
      See Also: