Class BuildClasspathMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
All Implemented Interfaces:
Comparator<org.apache.maven.artifact.Artifact>, org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

@Mojo(name="build-classpath", requiresDependencyResolution=TEST, defaultPhase=GENERATE_SOURCES, threadSafe=true) public class BuildClasspathMojo extends AbstractDependencyFilterMojo implements Comparator<org.apache.maven.artifact.Artifact>
This goal outputs a classpath string of dependencies from the local repository to a file or log.
Since:
2.0-alpha-2
  • Field Details

    • outputEncoding

      @Parameter(property="outputEncoding", defaultValue="${project.reporting.outputEncoding}") private String outputEncoding
    • stripVersion

      @Parameter(property="mdep.stripVersion", defaultValue="false") private boolean stripVersion
      Strip artifact version during copy (only works if prefix is set)
    • stripClassifier

      @Parameter(property="mdep.stripClassifier", defaultValue="false") private boolean stripClassifier
      Strip artifact classifier during copy (only works if prefix is set)
    • prefix

      @Parameter(property="mdep.prefix") private String prefix
      The prefix to prepend on each dependent artifact. If undefined, the paths refer to the actual files store in the local repository (the stripVersion parameter does nothing then).
    • outputProperty

      @Parameter(property="mdep.outputProperty") private String outputProperty
      A property to set to the content of the classpath string.
    • outputFile

      @Parameter(property="mdep.outputFile") private File outputFile
      The file to write the classpath string. If undefined, it just prints the classpath as [INFO].
    • regenerateFile

      @Parameter(property="mdep.regenerateFile", defaultValue="false") private boolean regenerateFile
      If 'true', it skips the up-to-date-check, and always regenerates the classpath file.
    • fileSeparator

      @Parameter(property="mdep.fileSeparator", defaultValue="") private String fileSeparator
      Override the char used between the paths. This field is initialized to contain the first character of the value of the system property file.separator. On UNIX systems the value of this field is '/'; on Microsoft Windows systems it is '\'. The default is File.separator
      Since:
      2.0
    • pathSeparator

      @Parameter(property="mdep.pathSeparator", defaultValue="") private String pathSeparator
      Override the char used between path folders. The system-dependent path-separator character. This field is initialized to contain the first character of the value of the system property path.separator. This character is used to separate filenames in a sequence of files given as a path list. On UNIX systems, this character is ':'; on Microsoft Windows systems it is ';'.
      Since:
      2.0
    • localRepoProperty

      @Parameter(property="mdep.localRepoProperty", defaultValue="") private String localRepoProperty
      Replace the absolute path to the local repo with this property. This field is ignored it prefix is declared. The value will be forced to "${M2_REPO}" if no value is provided AND the attach flag is true.
      Since:
      2.0
    • attach

      @Parameter(defaultValue="false") private boolean attach
      Attach the classpath file to the main artifact so it can be installed and deployed.
      Since:
      2.0
    • outputFilterFile

      @Parameter(property="mdep.outputFilterFile", defaultValue="false") private boolean outputFilterFile
      Write out the classpath in a format compatible with filtering (classpath=xxxxx)
      Since:
      2.0
    • useBaseVersion

      @Parameter(property="mdep.useBaseVersion", defaultValue="true") private boolean useBaseVersion
      Either append the artifact's baseVersion or uniqueVersion to the filename. Will only be used if isStripVersion() is false.
      Since:
      2.6
    • projectHelper

      @Component private org.apache.maven.project.MavenProjectHelper projectHelper
      Maven ProjectHelper
    • repositoryManager

      @Component private org.apache.maven.shared.transfer.repository.RepositoryManager repositoryManager
  • Constructor Details

    • BuildClasspathMojo

      public BuildClasspathMojo()
  • Method Details

    • doExecute

      protected void doExecute() throws org.apache.maven.plugin.MojoExecutionException
      Main entry into mojo. Gets the list of dependencies and iterates to create a classpath.
      Specified by:
      doExecute in class AbstractDependencyMojo
      Throws:
      org.apache.maven.plugin.MojoExecutionException - with a message if an error occurs.
      See Also:
    • attachFile

      protected void attachFile(String cpString) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      cpString - The classpath.
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error.
    • appendArtifactPath

      protected void appendArtifactPath(org.apache.maven.artifact.Artifact art, StringBuilder sb)
      Appends the artifact path into the specified StringBuilder.
      Parameters:
      art - Artifact
      sb - StringBuilder
    • isUpToDate

      private boolean isUpToDate(String cpString)
      Checks that new classpath differs from that found inside the old classpathFile.
      Returns:
      true if the specified classpath equals the one found inside the file, false otherwise (including when file does not exist but new classpath does).
    • storeClasspathFile

      private void storeClasspathFile(String cpString, File out) throws org.apache.maven.plugin.MojoExecutionException
      Stores the specified string into that file.
      Parameters:
      cpString - the string to write into the file
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • readClasspathFile

      protected String readClasspathFile() throws IOException
      Reads the file specified by the mojo param 'outputFile' into a string. Assumes the field 'outputFile' is not null.
      Returns:
      the string contained in the classpathFile, if it exists, or null otherwise
      Throws:
      IOException - in case of an error
    • compare

      public int compare(org.apache.maven.artifact.Artifact art1, org.apache.maven.artifact.Artifact art2)
      Compares artifacts lexicographically, using pattern [group_id][artifact_id][version].
      Specified by:
      compare in interface Comparator<org.apache.maven.artifact.Artifact>
      Parameters:
      art1 - first object
      art2 - second object
      Returns:
      the value 0 if the argument string is equal to this string; a value less than 0 if this string is lexicographically less than the string argument; and a value greater than 0 if this string is lexicographically greater than the string argument.
    • getMarkedArtifactFilter

      protected org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter getMarkedArtifactFilter()
      Description copied from class: AbstractDependencyFilterMojo
      Return an ArtifactsFilter indicating which artifacts must be filtered out.
      Specified by:
      getMarkedArtifactFilter in class AbstractDependencyFilterMojo
      Returns:
      an ArtifactsFilter indicating which artifacts must be filtered out.
    • setOutputFile

      public void setOutputFile(File outputFile)
      Parameters:
      outputFile - the outputFile to set
    • setOutputProperty

      public void setOutputProperty(String theOutputProperty)
      Parameters:
      theOutputProperty - the outputProperty to set
    • setFileSeparator

      public void setFileSeparator(String theFileSeparator)
      Parameters:
      theFileSeparator - the fileSeparator to set
    • setPathSeparator

      public void setPathSeparator(String thePathSeparator)
      Parameters:
      thePathSeparator - the pathSeparator to set
    • setPrefix

      public void setPrefix(String thePrefix)
      Parameters:
      thePrefix - the prefix to set
    • setRegenerateFile

      public void setRegenerateFile(boolean theRegenerateFile)
      Parameters:
      theRegenerateFile - the regenerateFile to set
    • isStripVersion

      public boolean isStripVersion()
      Returns:
      the stripVersion
    • setStripVersion

      public void setStripVersion(boolean theStripVersion)
      Parameters:
      theStripVersion - the stripVersion to set
    • setLocalRepoProperty

      public void setLocalRepoProperty(String localRepoProperty)
      Parameters:
      localRepoProperty - localRepoProperty