Class BuildClasspathMojo

  • All Implemented Interfaces:
    java.util.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 java.util.Comparator<org.apache.maven.artifact.Artifact>
    This goal will output a classpath string of dependencies from the local repository to a file or log.
    Since:
    2.0-alpha-2
    • Field Detail

      • 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 java.lang.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 java.lang.String outputProperty
        A property to set to the content of the classpath string.
      • outputFile

        @Parameter(property="mdep.outputFile")
        private java.io.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 java.lang.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 java.lang.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 java.lang.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 Detail

      • BuildClasspathMojo

        public BuildClasspathMojo()
    • Method Detail

      • attachFile

        protected void attachFile​(java.lang.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,
                                          java.lang.StringBuilder sb)
        Appends the artifact path into the specified StringBuilder.
        Parameters:
        art - Artifact
        sb - StringBuilder
      • isUpdToDate

        private boolean isUpdToDate​(java.lang.String cpString)
        Checks that new classpath differs from that found inside the old classpathFile.
        Parameters:
        cpString -
        Returns:
        true if the specified classpath equals to that found inside the file, false otherwise (including when file does not exists but new classpath does).
      • storeClasspathFile

        private void storeClasspathFile​(java.lang.String cpString,
                                        java.io.File out)
                                 throws org.apache.maven.plugin.MojoExecutionException
        It stores the specified string into that file.
        Parameters:
        cpString - the string to be written into the file.
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • readClasspathFile

        protected java.lang.String readClasspathFile()
                                              throws java.io.IOException
        Reads into a string the file specified by the mojo param 'outputFile'. Assumes, the instance variable 'outputFile' is not null.
        Returns:
        the string contained in the classpathFile, if exists, or null otherwise.
        Throws:
        java.io.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 java.util.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​(java.io.File outputFile)
        Parameters:
        outputFile - the outputFile to set
      • setOutputProperty

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

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

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

        public void setPrefix​(java.lang.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​(java.lang.String localRepoProperty)
        Parameters:
        localRepoProperty - localRepoProperty