Class MavenArchiver


  • public class MavenArchiver
    extends java.lang.Object
    Version:
    $Revision$ $Date$
    Author:
    Emmanuel Venisse, kama
    • Constructor Summary

      Constructors 
      Constructor Description
      MavenArchiver()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Date configureReproducible​(java.lang.String outputTimestamp)
      Configure Reproducible Builds archive creation if a timestamp is provided.
      void createArchive​(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, MavenArchiveConfiguration archiveConfiguration)  
      org.codehaus.plexus.archiver.jar.JarArchiver getArchiver()  
      org.codehaus.plexus.archiver.jar.Manifest getManifest​(org.apache.maven.execution.MavenSession mavenSession, org.apache.maven.project.MavenProject project, ManifestConfiguration config)  
      protected org.codehaus.plexus.archiver.jar.Manifest getManifest​(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, ManifestConfiguration config, java.util.Map<java.lang.String,​java.lang.String> entries)  
      org.codehaus.plexus.archiver.jar.Manifest getManifest​(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, MavenArchiveConfiguration config)  
      org.codehaus.plexus.archiver.jar.Manifest getManifest​(org.apache.maven.project.MavenProject project, ManifestConfiguration config)
      Return a pre-configured manifest
      java.util.Date parseOutputTimestamp​(java.lang.String outputTimestamp)
      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.
      void setArchiver​(org.codehaus.plexus.archiver.jar.JarArchiver archiver)  
      void setBuildJdkSpecDefaultEntry​(boolean buildJdkSpecDefaultEntry)
      Add "Build-Jdk-Spec" entry as part of default manifest entries (true by default).
      void setCreatedBy​(java.lang.String description, java.lang.String groupId, java.lang.String artifactId)
      Define a value for "Created By" entry.
      void setOutputFile​(java.io.File outputFile)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • SIMPLE_LAYOUT

        public static final java.lang.String SIMPLE_LAYOUT
        The simply layout.
        See Also:
        Constant Field Values
      • REPOSITORY_LAYOUT

        public static final java.lang.String REPOSITORY_LAYOUT
        Repository layout.
        See Also:
        Constant Field Values
      • SIMPLE_LAYOUT_NONUNIQUE

        public static final java.lang.String SIMPLE_LAYOUT_NONUNIQUE
        simple layout non unique.
        See Also:
        Constant Field Values
      • REPOSITORY_LAYOUT_NONUNIQUE

        public static final java.lang.String REPOSITORY_LAYOUT_NONUNIQUE
        Repository layout non unique.
        See Also:
        Constant Field Values
    • Constructor Detail

      • MavenArchiver

        public MavenArchiver()
    • Method Detail

      • 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
        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
        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.
      • getManifest

        protected org.codehaus.plexus.archiver.jar.Manifest getManifest​(org.apache.maven.execution.MavenSession session,
                                                                        org.apache.maven.project.MavenProject project,
                                                                        ManifestConfiguration config,
                                                                        java.util.Map<java.lang.String,​java.lang.String> entries)
                                                                 throws org.codehaus.plexus.archiver.jar.ManifestException,
                                                                        org.apache.maven.artifact.DependencyResolutionRequiredException
        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.
      • getArchiver

        public org.codehaus.plexus.archiver.jar.JarArchiver getArchiver()
        Returns:
        JarArchiver
      • setArchiver

        public void setArchiver​(org.codehaus.plexus.archiver.jar.JarArchiver archiver)
        Parameters:
        archiver - JarArchiver
      • setOutputFile

        public void setOutputFile​(java.io.File outputFile)
        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,
                                  java.io.IOException,
                                  org.apache.maven.artifact.DependencyResolutionRequiredException
        Parameters:
        session - MavenSession
        project - MavenProject
        archiveConfiguration - MavenArchiveConfiguration
        Throws:
        org.codehaus.plexus.archiver.ArchiverException - Archiver Exception.
        org.codehaus.plexus.archiver.jar.ManifestException - Manifest Exception.
        java.io.IOException - IO Exception.
        org.apache.maven.artifact.DependencyResolutionRequiredException - Dependency resolution exception.
      • setCreatedBy

        public void setCreatedBy​(java.lang.String description,
                                 java.lang.String groupId,
                                 java.lang.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
      • 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.
        Since:
        3.5.0
      • parseOutputTimestamp

        public java.util.Date parseOutputTimestamp​(java.lang.String outputTimestamp)
        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
        Since:
        3.5.0
      • configureReproducible

        public java.util.Date configureReproducible​(java.lang.String outputTimestamp)
        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
        Since:
        3.5.0
        See Also:
        parseOutputTimestamp(java.lang.String), Archiver#configureReproducible