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:
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 Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
Attach the classpath file to the main artifact so it can be installed and deployed.private String
Override the char used between the paths.private String
Replace the absolute path to the local repo with this property.private String
private File
The file to write the classpath string.private boolean
Write out the classpath in a format compatible with filtering (classpath=xxxxx)private String
A property to set to the content of the classpath string.private String
Override the char used between path folders.private String
The prefix to prepend on each dependent artifact.private org.apache.maven.project.MavenProjectHelper
Maven ProjectHelperprivate boolean
If 'true', it skips the up-to-date-check, and always regenerates the classpath file.private org.apache.maven.shared.transfer.repository.RepositoryManager
private boolean
Strip artifact classifier during copy (only works if prefix is set)private boolean
Strip artifact version during copy (only works if prefix is set)private boolean
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
Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
appendArtifactPath
(org.apache.maven.artifact.Artifact art, StringBuilder sb) Appends the artifact path into the specified StringBuilder.protected void
attachFile
(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
Main entry into mojo.protected org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter
Return anArtifactsFilter
indicating which artifacts must be filtered out.boolean
private boolean
isUpToDate
(String cpString) Checks that new classpath differs from that found inside the old classpathFile.protected String
Reads the file specified by the mojo param 'outputFile' into a string.void
setFileSeparator
(String theFileSeparator) void
setLocalRepoProperty
(String localRepoProperty) void
setOutputFile
(File outputFile) void
setOutputProperty
(String theOutputProperty) void
setPathSeparator
(String thePathSeparator) void
void
setRegenerateFile
(boolean theRegenerateFile) void
setStripVersion
(boolean theStripVersion) private void
storeClasspathFile
(String cpString, File out) 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, getProject, isSilent, isSkip, newResolveArtifactProjectBuildingRequest, newResolvePluginProjectBuildingRequest, setSilent, setSkip
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
Methods inherited from interface java.util.Comparator
equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Field Details
-
outputEncoding
@Parameter(property="outputEncoding", defaultValue="${project.reporting.outputEncoding}") private String outputEncoding -
stripVersion
@Parameter(property="mdep.stripVersion", defaultValue="false") private boolean stripVersionStrip artifact version during copy (only works if prefix is set) -
stripClassifier
@Parameter(property="mdep.stripClassifier", defaultValue="false") private boolean stripClassifierStrip artifact classifier during copy (only works if prefix is set) -
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
A property to set to the content of the classpath string. -
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 regenerateFileIf 'true', it skips the up-to-date-check, and always regenerates the classpath file. -
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
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
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 attachAttach 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 outputFilterFileWrite out the classpath in a format compatible with filtering (classpath=xxxxx)- Since:
- 2.0
-
useBaseVersion
@Parameter(property="mdep.useBaseVersion", defaultValue="true") private boolean useBaseVersionEither 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 projectHelperMaven 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.MojoExecutionExceptionMain 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:
-
attachFile
- Parameters:
cpString
- The classpath.- Throws:
org.apache.maven.plugin.MojoExecutionException
- in case of an error.
-
appendArtifactPath
Appends the artifact path into the specified StringBuilder.- Parameters:
art
-Artifact
sb
-StringBuilder
-
isUpToDate
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
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 interfaceComparator<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
- Parameters:
outputFile
- the outputFile to set
-
setOutputProperty
- Parameters:
theOutputProperty
- the outputProperty to set
-
setFileSeparator
- Parameters:
theFileSeparator
- the fileSeparator to set
-
setPathSeparator
- Parameters:
thePathSeparator
- the pathSeparator to set
-
setPrefix
- 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
- Parameters:
localRepoProperty
-localRepoProperty
-