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
    Whether to append outputs into the output file or overwrite it.
    private org.apache.maven.shared.dependency.graph.DependencyCollectorBuilder
    The dependency collector builder to use.
    private org.apache.maven.shared.dependency.graph.DependencyGraphBuilder
    The dependency graph builder to use.
    private String
    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 String
    A comma-separated list of artifacts to filter the serialized dependency tree by, or null not to filter the dependency tree.
    private String
     
    private File
    If specified, this parameter will cause the dependency tree to be written to the path specified, instead of writing to the console.
    private String
    If specified, this parameter will cause the dependency tree to be written using the specified format.
    private org.apache.maven.project.MavenProject
    The Maven project.
    private List<org.eclipse.aether.repository.RemoteRepository>
    The project's remote repositories to use for the resolution of project dependencies.
    private List<org.apache.maven.project.MavenProject>
    Contains the full list of projects in the reactor.
    private org.eclipse.aether.RepositorySystemSession
    The current repository/network configuration of Maven.
    private org.eclipse.aether.RepositorySystem
     
    (package private) org.eclipse.aether.RepositorySystem
     
    private org.apache.maven.shared.dependency.graph.DependencyNode
    The computed dependency tree root node of the Maven project.
    private String
    The scope to filter by when resolving the dependency tree, or null to include dependencies from all scopes.
    private org.apache.maven.execution.MavenSession
     
    private boolean
    Skip plugin execution completely.
    private String
    The token set name to use when outputting the dependency tree.
    private boolean
    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
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    containsVersion(org.apache.maven.artifact.versioning.VersionRange allowedRange, org.apache.maven.artifact.versioning.ArtifactVersion theVersion)
    Deprecated.
    This method is unused in this project and will be removed in the future.
    private org.apache.maven.shared.dependency.graph.filter.DependencyNodeFilter
    Gets the dependency node filter to use when serializing the dependency graph.
    private org.apache.maven.artifact.resolver.filter.ArtifactFilter
    Gets the artifact filter to use when resolving the dependency tree.
    void
     
    org.apache.maven.shared.dependency.graph.DependencyNode
    Gets the computed dependency graph root node for the Maven project.
    org.apache.maven.project.MavenProject
    Gets the Maven project used by this mojo.
    org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor
     
    boolean
     
    private 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(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 Details

    • 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
    • outputEncoding

      @Parameter(property="outputEncoding", defaultValue="${project.reporting.outputEncoding}") private String outputEncoding
    • reactorProjects

      @Parameter(defaultValue="${reactorProjects}", readonly=true, required=true) private List<org.apache.maven.project.MavenProject> reactorProjects
      Contains the full list of projects in the reactor.
    • repositorySystem

      @Component private org.eclipse.aether.RepositorySystem repositorySystem
    • repositorySystemParam

      @Parameter(defaultValue="${repositorySystem}") org.eclipse.aether.RepositorySystem repositorySystemParam
    • repoSession

      @Parameter(defaultValue="${repositorySystemSession}") private org.eclipse.aether.RepositorySystemSession repoSession
      The current repository/network configuration of Maven.
    • projectRepos

      @Parameter(defaultValue="${project.remoteProjectRepositories}") private List<org.eclipse.aether.repository.RemoteRepository> projectRepos
      The project's remote repositories to use for the resolution of project dependencies.
    • dependencyCollectorBuilder

      @Component(hint="default") private org.apache.maven.shared.dependency.graph.DependencyCollectorBuilder dependencyCollectorBuilder
      The dependency collector builder to use.
    • dependencyGraphBuilder

      @Component(hint="default") private org.apache.maven.shared.dependency.graph.DependencyGraphBuilder dependencyGraphBuilder
      The dependency graph builder to use.
    • outputFile

      @Parameter(property="outputFile") private 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 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 String scope
      The scope to filter by when resolving the dependency tree, or null to include dependencies from all scopes.
      Since:
      2.0-alpha-5
    • verbose

      @Parameter(property="verbose", defaultValue="false") private boolean verbose
      Whether to include omitted nodes in the serialized dependency tree.
      Since:
      2.0-alpha-6
    • tokens

      @Parameter(property="tokens", defaultValue="standard") private 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 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 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 Details

    • TreeMojo

      public TreeMojo()
  • Method Details

    • 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 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(Writer writer)
      Parameters:
      writer - Writer
      Returns:
      DependencyNodeVisitor
    • toGraphTokens

      private org.apache.maven.shared.dependency.graph.traversal.SerializingDependencyNodeVisitor.GraphTokens toGraphTokens(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

      @Deprecated public static boolean containsVersion(org.apache.maven.artifact.versioning.VersionRange allowedRange, org.apache.maven.artifact.versioning.ArtifactVersion theVersion)
      Deprecated.
      This method is unused in this project and will be removed in the future.
      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.