Class AbstractSourceJarMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugins.source.AbstractSourceJarMojo
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
Direct Known Subclasses:
SourceJarNoForkMojo, TestSourceJarNoForkMojo

public abstract class AbstractSourceJarMojo extends org.apache.maven.plugin.AbstractMojo
Base class for bundling sources into a jar archive.
Since:
2.0.3
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private org.apache.maven.archiver.MavenArchiveConfiguration
    The archive configuration to use.
    private boolean
    Specifies whether or not to attach the artifact to the project
    private static final String[]
     
    private static final String[]
     
    private File
    Path to the default MANIFEST file to use.
    protected boolean
    Specifies whether or not to exclude resources from the sources-jar.
    private String[]
    List of files to exclude.
    protected String
    The filename to be used for the generated archive file.
    private boolean
    Whether creating the archive should be forced.
    protected boolean
    Specifies whether or not to include the POM file in the sources-jar.
    private String[]
    List of files to include.
    private org.codehaus.plexus.archiver.jar.JarArchiver
    The Jar archiver.
    protected File
    The directory where the generated archive file will be put.
    private String
    Timestamp for reproducible output 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).
    private org.apache.maven.project.MavenProject
    The Maven Project Object
    private org.apache.maven.project.MavenProjectHelper
    Used for attaching the source jar to the project.
    protected List<org.apache.maven.project.MavenProject>
    Contains the full list of projects in the reactor.
    private org.apache.maven.execution.MavenSession
    The Maven session.
    private boolean
    A flag used to disable the source procedure.
    private boolean
    Exclude commonly excluded files such as SCM configuration.
    private boolean
    Set this to true to enable the use of the defaultManifestFile.

    Fields inherited from interface org.apache.maven.plugin.Mojo

    ROLE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    addDirectory(org.codehaus.plexus.archiver.Archiver archiver, File sourceDirectory, String[] pIncludes, String[] pExcludes)
     
    protected void
    addDirectory(org.codehaus.plexus.archiver.Archiver archiver, File sourceDirectory, String prefix, String[] pIncludes, String[] pExcludes)
     
    protected void
    archiveProjectContent(org.apache.maven.project.MavenProject p, org.codehaus.plexus.archiver.Archiver archiver)
     
    protected org.apache.maven.archiver.MavenArchiver
     
    void
    protected abstract String
     
    private String[]
    getCombinedExcludes(List<String> additionalExcludes)
    Combines the user parameter excludes, the default excludes from plexus FileUtils, and the contents of the parameter addionalExcludes.
    private String[]
    getCombinedIncludes(List<String> additionalIncludes)
    Combines the includes parameter and additional includes.
    protected String
     
    protected org.apache.maven.project.MavenProject
     
    protected org.apache.maven.project.MavenProject
    getProject(org.apache.maven.project.MavenProject p)
     
    protected abstract List<org.apache.maven.model.Resource>
    getResources(org.apache.maven.project.MavenProject p)
     
    protected abstract List<String>
    getSources(org.apache.maven.project.MavenProject p)
     
    protected String
     
    protected void
    packageSources(List<org.apache.maven.project.MavenProject> theProjects)
     
    protected void
    packageSources(org.apache.maven.project.MavenProject p)
     
    protected void
    setProject(org.apache.maven.project.MavenProject project)
     

    Methods inherited from class org.apache.maven.plugin.AbstractMojo

    getLog, getPluginContext, setLog, setPluginContext

    Methods inherited from class java.lang.Object

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

    • DEFAULT_INCLUDES

      private static final String[] DEFAULT_INCLUDES
    • DEFAULT_EXCLUDES

      private static final String[] DEFAULT_EXCLUDES
    • includes

      @Parameter private String[] includes
      List of files to include. Specified as fileset patterns which are relative to the input directory whose contents is being packaged into the JAR.
      Since:
      2.1
    • excludes

      @Parameter private String[] excludes
      List of files to exclude. Specified as fileset patterns which are relative to the input directory whose contents is being packaged into the JAR.
      Since:
      2.1
    • useDefaultExcludes

      @Parameter(property="maven.source.useDefaultExcludes", defaultValue="true") private boolean useDefaultExcludes
      Exclude commonly excluded files such as SCM configuration. These are defined in the plexus FileUtils.getDefaultExcludes()
      Since:
      2.1
    • project

      @Parameter(defaultValue="${project}", readonly=true, required=true) private org.apache.maven.project.MavenProject project
      The Maven Project Object
    • jarArchiver

      @Component(role=org.codehaus.plexus.archiver.Archiver.class, hint="jar") private org.codehaus.plexus.archiver.jar.JarArchiver jarArchiver
      The Jar archiver.
    • archive

      @Parameter private org.apache.maven.archiver.MavenArchiveConfiguration archive
      The archive configuration to use. See Maven Archiver Reference.
      Note: Since 3.0.0 the resulting archives contain a maven descriptor. If you need to suppress the generation of the maven descriptor you can simply achieve this by using the archiver configuration..
      Since:
      2.1
    • defaultManifestFile

      @Parameter(defaultValue="${project.build.outputDirectory}/META-INF/MANIFEST.MF", readonly=false, required=true) private File defaultManifestFile
      Path to the default MANIFEST file to use. It will be used if useDefaultManifestFile is set to true.
      Since:
      2.1
    • useDefaultManifestFile

      @Parameter(property="maven.source.useDefaultManifestFile", defaultValue="false") private boolean useDefaultManifestFile
      Set this to true to enable the use of the defaultManifestFile.
      Since:
      2.1
    • attach

      @Parameter(property="maven.source.attach", defaultValue="true") private boolean attach
      Specifies whether or not to attach the artifact to the project
    • excludeResources

      @Parameter(property="maven.source.excludeResources", defaultValue="false") protected boolean excludeResources
      Specifies whether or not to exclude resources from the sources-jar. This can be convenient if your project includes large resources, such as images, and you don't want to include them in the sources-jar.
      Since:
      2.0.4
    • includePom

      @Parameter(property="maven.source.includePom", defaultValue="false") protected boolean includePom
      Specifies whether or not to include the POM file in the sources-jar.
      Since:
      2.1
    • projectHelper

      @Component private org.apache.maven.project.MavenProjectHelper projectHelper
      Used for attaching the source jar to the project.
    • outputDirectory

      @Parameter(defaultValue="${project.build.directory}") protected File outputDirectory
      The directory where the generated archive file will be put.
    • finalName

      @Parameter(defaultValue="${project.build.finalName}") protected String finalName
      The filename to be used for the generated archive file. For the source:jar goal, "-sources" is appended to this filename. For the source:test-jar goal, "-test-sources" is appended.
    • reactorProjects

      @Parameter(defaultValue="${reactorProjects}", readonly=true) protected List<org.apache.maven.project.MavenProject> reactorProjects
      Contains the full list of projects in the reactor.
    • forceCreation

      @Parameter(property="maven.source.forceCreation", defaultValue="false") private boolean forceCreation
      Whether creating the archive should be forced. If set to true, the jar will always be created. If set to false, the jar will only be created when the sources are newer than the jar.
      Since:
      2.1
    • skipSource

      @Parameter(property="maven.source.skip", defaultValue="false") private boolean skipSource
      A flag used to disable the source procedure. This is primarily intended for usage from the command line to occasionally adjust the build.
      Since:
      2.2
    • session

      @Parameter(defaultValue="${session}", readonly=true, required=true) private org.apache.maven.execution.MavenSession session
      The Maven session.
    • outputTimestamp

      @Parameter(defaultValue="${project.build.outputTimestamp}") private String outputTimestamp
      Timestamp for reproducible output 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).
      Since:
      3.2.0
  • Constructor Details

    • AbstractSourceJarMojo

      public AbstractSourceJarMojo()
  • Method Details

    • execute

      public void execute() throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • getClassifier

      protected abstract String getClassifier()
      Returns:
      the wanted classifier, ie sources or test-sources
    • getSources

      protected abstract List<String> getSources(org.apache.maven.project.MavenProject p) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      p - MavenProject not null
      Returns:
      the compile or test sources
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error.
    • getResources

      protected abstract List<org.apache.maven.model.Resource> getResources(org.apache.maven.project.MavenProject p) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      p - MavenProject not null
      Returns:
      the compile or test resources
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error.
    • packageSources

      protected void packageSources(org.apache.maven.project.MavenProject p) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      p - MavenProject
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error.
    • packageSources

      protected void packageSources(List<org.apache.maven.project.MavenProject> theProjects) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      theProjects - MavenProject
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error.
    • archiveProjectContent

      protected void archiveProjectContent(org.apache.maven.project.MavenProject p, org.codehaus.plexus.archiver.Archiver archiver) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      p - MavenProject
      archiver - Archiver
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error.
    • createArchiver

      protected org.apache.maven.archiver.MavenArchiver createArchiver() throws org.apache.maven.plugin.MojoExecutionException
      Returns:
      MavenArchiver
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error.
    • addDirectory

      protected void addDirectory(org.codehaus.plexus.archiver.Archiver archiver, File sourceDirectory, String[] pIncludes, String[] pExcludes) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      archiver - Archiver
      sourceDirectory - File
      pIncludes - The list of includes.
      pExcludes - The list of excludes.
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error.
    • addDirectory

      protected void addDirectory(org.codehaus.plexus.archiver.Archiver archiver, File sourceDirectory, String prefix, String[] pIncludes, String[] pExcludes) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      archiver - Archiver
      sourceDirectory - File
      prefix - The prefix.
      pIncludes - the includes.
      pExcludes - the excludes.
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error.
    • getExtension

      protected String getExtension()
      Returns:
      The extension .jar
    • getProject

      protected org.apache.maven.project.MavenProject getProject(org.apache.maven.project.MavenProject p)
      Parameters:
      p - MavenProject
      Returns:
      The execution projet.
    • getType

      protected String getType()
      Returns:
      The type java-source
    • getCombinedIncludes

      private String[] getCombinedIncludes(List<String> additionalIncludes)
      Combines the includes parameter and additional includes. Defaults to DEFAULT_INCLUDES If the additionalIncludes parameter is null, it is not added to the combined includes.
      Parameters:
      additionalIncludes - The includes specified in the pom resources section
      Returns:
      The combined array of includes.
    • getCombinedExcludes

      private String[] getCombinedExcludes(List<String> additionalExcludes)
      Combines the user parameter excludes, the default excludes from plexus FileUtils, and the contents of the parameter addionalExcludes.
      Parameters:
      additionalExcludes - Additional excludes to add to the array
      Returns:
      The combined list of excludes.
    • getProject

      protected org.apache.maven.project.MavenProject getProject()
      Returns:
      The current project.
    • setProject

      protected void setProject(org.apache.maven.project.MavenProject project)
      Parameters:
      project - MavenProject