Class 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, or null 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, or null 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, or null 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.
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • 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.
      • 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
    • 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 and tgf. 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, or null 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 are whitespace, standard or extended, 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, or null 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 with org.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, or null 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 with org.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
    • Constructor Detail

      • TreeMojo

        public TreeMojo()
    • 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.