Class BuildClasspathMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.apache.maven.plugins.dependency.AbstractDependencyMojo
-
- org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo
-
- org.apache.maven.plugins.dependency.fromDependencies.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 Summary
Fields Modifier and Type Field Description private boolean
attach
Attach the classpath file to the main artifact so it can be installed and deployed.private java.lang.String
fileSeparator
Override the char used between the paths.private java.lang.String
localRepoProperty
Replace the absolute path to the local repo with this property.private java.io.File
outputFile
The file to write the classpath string.private boolean
outputFilterFile
Write out the classpath in a format compatible with filtering (classpath=xxxxx)private java.lang.String
outputProperty
A property to set to the content of the classpath string.private java.lang.String
pathSeparator
Override the char used between path folders.private java.lang.String
prefix
The prefix to prepend on each dependent artifact.private org.apache.maven.project.MavenProjectHelper
projectHelper
Maven ProjectHelperprivate boolean
regenerateFile
If 'true', it skips the up-to-date-check, and always regenerates the classpath file.private org.apache.maven.shared.transfer.repository.RepositoryManager
repositoryManager
private boolean
stripClassifier
Strip artifact classifier during copy (only works if prefix is set)private boolean
stripVersion
Strip artifact version during copy (only works if prefix is set)private boolean
useBaseVersion
Either append the artifact's baseVersion or uniqueVersion to the filename.-
Fields inherited from class org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo
classifier, excludeArtifactIds, excludeClassifiers, excludeGroupIds, excludeScope, excludeTransitive, excludeTypes, includeArtifactIds, includeClassifiers, includeGroupIds, includeScope, includeTypes, markersDirectory, overWriteIfNewer, overWriteReleases, overWriteSnapshots, prependGroupId, type
-
Fields inherited from class org.apache.maven.plugins.dependency.AbstractDependencyMojo
outputAbsoluteArtifactFilename, reactorProjects, session
-
-
Constructor Summary
Constructors Constructor Description BuildClasspathMojo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
appendArtifactPath(org.apache.maven.artifact.Artifact art, java.lang.StringBuilder sb)
Appends the artifact path into the specified StringBuilder.protected void
attachFile(java.lang.String cpString)
int
compare(org.apache.maven.artifact.Artifact art1, org.apache.maven.artifact.Artifact art2)
Compares artifacts lexicographically, using pattern [group_id][artifact_id][version].protected void
doExecute()
Main entry into mojo.protected org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter
getMarkedArtifactFilter()
Return anArtifactsFilter
indicating which artifacts must be filtered out.boolean
isStripVersion()
private boolean
isUpdToDate(java.lang.String cpString)
Checks that new classpath differs from that found inside the old classpathFile.protected java.lang.String
readClasspathFile()
Reads into a string the file specified by the mojo param 'outputFile'.void
setFileSeparator(java.lang.String theFileSeparator)
void
setLocalRepoProperty(java.lang.String localRepoProperty)
void
setOutputFile(java.io.File outputFile)
void
setOutputProperty(java.lang.String theOutputProperty)
void
setPathSeparator(java.lang.String thePathSeparator)
void
setPrefix(java.lang.String thePrefix)
void
setRegenerateFile(boolean theRegenerateFile)
void
setStripVersion(boolean theStripVersion)
private void
storeClasspathFile(java.lang.String cpString, java.io.File out)
It stores the specified string into that file.-
Methods inherited from class org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo
filterMarkedDependencies, getArtifactResolver, getClassifierTranslatedDependencies, getDependencyResolver, getDependencySets, getDependencySets, getMarkersDirectory, getRepositoryManager, getResolvedDependencies, isPrependGroupId, resolve, setMarkersDirectory, setPrependGroupId
-
Methods inherited from class org.apache.maven.plugins.dependency.AbstractDependencyMojo
copyFile, execute, getArchiverManager, getProject, isSilent, isSkip, isUseJvmChmod, newResolveArtifactProjectBuildingRequest, setArchiverManager, setSilent, setSkip, setUseJvmChmod, unpack, unpack, unpack
-
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
-
-
-
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 ifisStripVersion()
isfalse
.- 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
-
-
Method Detail
-
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 classAbstractDependencyMojo
- Throws:
org.apache.maven.plugin.MojoExecutionException
- with a message if an error occurs.- See Also:
AbstractDependencyFilterMojo.getResolvedDependencies(boolean)
-
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 interfacejava.util.Comparator<org.apache.maven.artifact.Artifact>
- Parameters:
art1
- first objectart2
- second object- Returns:
- the value
0
if the argument string is equal to this string; a value less than0
if this string is lexicographically less than the string argument; and a value greater than0
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 anArtifactsFilter
indicating which artifacts must be filtered out.- Specified by:
getMarkedArtifactFilter
in classAbstractDependencyFilterMojo
- 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
-
-