Class TreeMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.apache.maven.plugins.dependency.tree.TreeMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="tree", requiresDependencyCollection=TEST, threadSafe=true) public class TreeMojo extends org.apache.maven.plugin.AbstractMojo
Displays the dependency tree for this project. Multiple formats are supported: text (by default), but also DOT, graphml and TGF.- Since:
- 2.0-alpha-5
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
appendOutput
Whether to append outputs into the output file or overwrite it.private org.apache.maven.shared.dependency.graph.DependencyGraphBuilder
dependencyGraphBuilder
The dependency tree builder to use.private java.lang.String
excludes
A comma-separated list of artifacts to filter from the serialized dependency tree, ornull
not to filter any artifacts from the dependency tree.private java.lang.String
includes
A comma-separated list of artifacts to filter the serialized dependency tree by, ornull
not to filter the dependency tree.private java.io.File
outputFile
If specified, this parameter will cause the dependency tree to be written to the path specified, instead of writing to the console.private java.lang.String
outputType
If specified, this parameter will cause the dependency tree to be written using the specified format.private org.apache.maven.project.MavenProject
project
The Maven project.private java.util.List<org.apache.maven.project.MavenProject>
reactorProjects
Contains the full list of projects in the reactor.private org.apache.maven.shared.dependency.graph.DependencyNode
rootNode
The computed dependency tree root node of the Maven project.private java.lang.String
scope
The scope to filter by when resolving the dependency tree, ornull
to include dependencies from all scopes.private org.apache.maven.execution.MavenSession
session
private boolean
skip
Skip plugin execution completely.private java.lang.String
tokens
The token set name to use when outputting the dependency tree.private boolean
verbose
Whether to include omitted nodes in the serialized dependency tree.
-
Constructor Summary
Constructors Constructor Description TreeMojo()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static boolean
containsVersion(org.apache.maven.artifact.versioning.VersionRange allowedRange, org.apache.maven.artifact.versioning.ArtifactVersion theVersion)
Copied from Artifact.VersionRange.private org.apache.maven.shared.dependency.graph.filter.DependencyNodeFilter
createDependencyNodeFilter()
Gets the dependency node filter to use when serializing the dependency graph.private org.apache.maven.artifact.resolver.filter.ArtifactFilter
createResolvingArtifactFilter()
Gets the artifact filter to use when resolving the dependency tree.void
execute()
org.apache.maven.shared.dependency.graph.DependencyNode
getDependencyGraph()
Gets the computed dependency graph root node for the Maven project.org.apache.maven.project.MavenProject
getProject()
Gets the Maven project used by this mojo.org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor
getSerializingDependencyNodeVisitor(java.io.Writer writer)
boolean
isSkip()
private java.lang.String
serializeDependencyTree(org.apache.maven.shared.dependency.graph.DependencyNode theRootNode)
Serializes the specified dependency tree to a string.void
setSkip(boolean skip)
private org.apache.maven.shared.dependency.graph.traversal.SerializingDependencyNodeVisitor.GraphTokens
toGraphTokens(java.lang.String theTokens)
Gets the graph tokens instance for the specified name.
-
-
-
Field Detail
-
project
@Parameter(defaultValue="${project}", readonly=true, required=true) private org.apache.maven.project.MavenProject project
The Maven project.
-
session
@Parameter(defaultValue="${session}", readonly=true, required=true) private org.apache.maven.execution.MavenSession session
-
reactorProjects
@Parameter(defaultValue="${reactorProjects}", readonly=true, required=true) private java.util.List<org.apache.maven.project.MavenProject> reactorProjects
Contains the full list of projects in the reactor.
-
dependencyGraphBuilder
@Component(hint="default") private org.apache.maven.shared.dependency.graph.DependencyGraphBuilder dependencyGraphBuilder
The dependency tree builder to use.
-
outputFile
@Parameter(property="outputFile") private java.io.File outputFile
If specified, this parameter will cause the dependency tree to be written to the path specified, instead of writing to the console.- Since:
- 2.0-alpha-5
-
outputType
@Parameter(property="outputType", defaultValue="text") private java.lang.String outputType
If specified, this parameter will cause the dependency tree to be written using the specified format. Currently supported format are:text
(default),dot
,graphml
andtgf
. These additional formats can be plotted to image files.- Since:
- 2.2
-
scope
@Parameter(property="scope") private java.lang.String scope
The scope to filter by when resolving the dependency tree, ornull
to include dependencies from all scopes. Note that this feature does not currently work due to MSHARED-4- Since:
- 2.0-alpha-5
- See Also:
- MSHARED-4
-
verbose
@Parameter(property="verbose", defaultValue="false") private boolean verbose
Whether to include omitted nodes in the serialized dependency tree. Notice this feature actually uses Maven 2 algorithm and may give wrong results when used with Maven 3.- Since:
- 2.0-alpha-6
-
tokens
@Parameter(property="tokens", defaultValue="standard") private java.lang.String tokens
The token set name to use when outputting the dependency tree. Possible values arewhitespace
,standard
orextended
, which use whitespace, standard (ie ASCII) or extended character sets respectively.- Since:
- 2.0-alpha-6
-
includes
@Parameter(property="includes") private java.lang.String includes
A comma-separated list of artifacts to filter the serialized dependency tree by, ornull
not to filter the dependency tree. The filter syntax is:[groupId]:[artifactId]:[type]:[version]
where each pattern segment is optional and supports full and partial*
wildcards. An empty pattern segment is treated as an implicit wildcard.For example,
org.apache.*
will match all artifacts whose group id starts withorg.apache.
, and:::*-SNAPSHOT
will match all snapshot artifacts.- Since:
- 2.0-alpha-6
- See Also:
StrictPatternIncludesArtifactFilter
-
excludes
@Parameter(property="excludes") private java.lang.String excludes
A comma-separated list of artifacts to filter from the serialized dependency tree, ornull
not to filter any artifacts from the dependency tree. The filter syntax is:[groupId]:[artifactId]:[type]:[version]
where each pattern segment is optional and supports full and partial*
wildcards. An empty pattern segment is treated as an implicit wildcard.For example,
org.apache.*
will match all artifacts whose group id starts withorg.apache.
, and:::*-SNAPSHOT
will match all snapshot artifacts.- Since:
- 2.0-alpha-6
- See Also:
StrictPatternExcludesArtifactFilter
-
rootNode
private org.apache.maven.shared.dependency.graph.DependencyNode rootNode
The computed dependency tree root node of the Maven project.
-
appendOutput
@Parameter(property="appendOutput", defaultValue="false") private boolean appendOutput
Whether to append outputs into the output file or overwrite it.- Since:
- 2.2
-
skip
@Parameter(property="skip", defaultValue="false") private boolean skip
Skip plugin execution completely.- Since:
- 2.7
-
-
Method Detail
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
- Throws:
org.apache.maven.plugin.MojoExecutionException
org.apache.maven.plugin.MojoFailureException
-
getProject
public org.apache.maven.project.MavenProject getProject()
Gets the Maven project used by this mojo.- Returns:
- the Maven project
-
getDependencyGraph
public org.apache.maven.shared.dependency.graph.DependencyNode getDependencyGraph()
Gets the computed dependency graph root node for the Maven project.- Returns:
- the dependency tree root node
-
isSkip
public boolean isSkip()
- Returns:
skip
-
setSkip
public void setSkip(boolean skip)
- Parameters:
skip
-skip
-
createResolvingArtifactFilter
private org.apache.maven.artifact.resolver.filter.ArtifactFilter createResolvingArtifactFilter()
Gets the artifact filter to use when resolving the dependency tree.- Returns:
- the artifact filter
-
serializeDependencyTree
private java.lang.String serializeDependencyTree(org.apache.maven.shared.dependency.graph.DependencyNode theRootNode)
Serializes the specified dependency tree to a string.- Parameters:
theRootNode
- the dependency tree root node to serialize- Returns:
- the serialized dependency tree
-
getSerializingDependencyNodeVisitor
public org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor getSerializingDependencyNodeVisitor(java.io.Writer writer)
- Parameters:
writer
-Writer
- Returns:
DependencyNodeVisitor
-
toGraphTokens
private org.apache.maven.shared.dependency.graph.traversal.SerializingDependencyNodeVisitor.GraphTokens toGraphTokens(java.lang.String theTokens)
Gets the graph tokens instance for the specified name.- Parameters:
theTokens
- the graph tokens name- Returns:
- the
GraphTokens
instance
-
createDependencyNodeFilter
private org.apache.maven.shared.dependency.graph.filter.DependencyNodeFilter createDependencyNodeFilter()
Gets the dependency node filter to use when serializing the dependency graph.- Returns:
- the dependency node filter, or
null
if none required
-
containsVersion
public static boolean containsVersion(org.apache.maven.artifact.versioning.VersionRange allowedRange, org.apache.maven.artifact.versioning.ArtifactVersion theVersion)
Copied from Artifact.VersionRange. This is tweaked to handle singular ranges properly. Currently the default containsVersion method assumes a singular version means allow everything. This method assumes that "2.0.4" == "[2.0.4,)"- Parameters:
allowedRange
- range of allowed versions.theVersion
- the version to be checked.- Returns:
- true if the version is contained by the range.
-
-