Full name:
org.kuali.maven.plugins:graph-maven-plugin:1.2.1:dependencies
Description:
This mojo produces customizable graphs of Maven dependency trees.
By default, the complete dependency tree (including transitive dependencies) is graphed. Graphs can be filtered with include/exclude criteria for artifacts and with show/hide criteria for Maven scope and optional settings.
Two layout styles are supported - LINKED and FLAT.
In LINKED mode, the relationships between shared dependencies are shown. Each dependency included in the build is displayed on the graph only once. The connections between dependencies are presented by Graphviz algorithms as a directed hierarchical graph.
For a transitive dependency, LINKED mode illustrates why Maven includes it in the build.
For a shared dependency (eg commons-logging), LINKED mode shows what other libraries depend on it. LINKED mode also shows the decisions Maven makes when resolving conflicts between pom's that depend on different versions of the same artifact.
In FLAT mode, dependencies are displayed exactly how they are defined in the pom's. This style can make it easier to comprehend the dependency tree but relationships between shared dependencies are not drawn.
Attributes:
Name | Type | Since | Description |
---|---|---|---|
direction | Direction | - | The direction for the graph layout. Valid values are TB, LR, BT, RL. Top to bottom, left to right, bottom to top, and right to left, respectively. Default value is: TB. |
file | File | - | The file the graph will be written to. The file extension can be any output format supported by Graphviz (png, jpg, gif, pdf, ...) Default value is: ${project.build.directory}/graph/dependencies.png. |
layout | Layout | - | The style for the graph layout. Valid options are LINKED and FLAT In LINKED mode, the relationships between shared dependencies are shown. Each dependency included in the build is displayed on the graph only once. The connections between dependencies are presented by Graphviz algorithms as a directed hierarchical graph. For a transitive dependency, LINKED mode illustrates why Maven includes it in the build. For a shared dependency (eg commons-logging), LINKED mode shows what other libraries depend on it. LINKED mode also shows the decisions Maven makes when resolving conflicts between pom's that depend on different versions of the same artifact. In FLAT mode, dependencies are displayed exactly how they are defined in the pom's. This style can make it easier to comprehend the dependency tree but relationships between shared dependencies are not drawn. Default value is: LINKED. |
Name | Type | Since | Description |
---|---|---|---|
cascadeOptional | boolean | - | If true, any dependency marked as optional will have all of its transitive dependencies displayed as optional also. Default value is: true. |
conflicts | Conflicts | - | Determines how conflicts in the dependency tree are displayed. Valid options are IGNORE, LABEL, and SHOW. IGNORE, ignores conflicts and draws the graph without any reference to them. LABEL, draws a red line with the word "conflict" for any spots in the dependency tree where there are conflicts. SHOW, draws a red line, and also shows what version of the artifact was conflicted out of the build. Maven supports the resolution of artifact versions by way of nearest-wins. That is, for any set of dependencies that share the same groupId:artifactId:type:classifier, the one declared nearest to the current project in the dependency tree will be selected for use. Default value is: IGNORE. |
depth | int | - | Restricts the depth of the dependency tree. To show only the dependencies of the current project, set this to 1. To show the dependencies of the current project and their direct dependencies, set this to 2. Default value is: -1. |
display | Display | - | Controls what dependencies are displayed on the graph by applying different filtering techniques. Valid options are PATH, TREE, and PT (path and tree). NOTE: Support for display types other than TREE should be considered experimental. PATH and PT are not fully implemented or tested. Use at your own risk. TREE prunes the dependency tree from the top down. Recursive traversal of transitive dependencies stops when a dependency does not match the filter criteria. Any further transitive dependencies in that part of the dependency tree are not displayed. PATH searches the entire tree for any dependencies matching the filter criteria. All matching dependencies are displayed. In addition, the dependencies in the path from any matching dependency back to the top of the dependency tree are displayed. Dependencies in the path from a matching dependency to the top of the tree are always displayed, even if they do not match the filter criteria themselves. PT is similar to PATH. The difference between PT and PATH is that PT shows the transitive dependencies of dependencies matching the filter criteria in addition to the dependencies in the path back to the top of the dependency tree. Default value is: TREE. |
excludes | String | - | Comma delimited list of artifact patterns to exclude. The pattern syntax has the form - [groupId]:[artifactId]:[type]:[classifier]:[version] Each pattern segment is optional and supports the use of the asterisk "*" as a wildcard. An empty pattern segment is treated as a wildcard. For example: Exclude commons-logging -Dgraph.excludes=commons-logging Exclude logging in general -Dgraph.excludes=commons-logging,org.slf4j,log4j Exclude war files -Dgraph.excludes=*:*:war Exclude source -Dgraph.excludes=:::sources If exclude patterns are provided, a match with any exclude pattern will prevent a dependency (and the dependency tree beneath it) from being displayed. Exclude patterns override include patterns. If not provided, no artifacts are excluded. |
executeDot | boolean | - | If true, the Graphviz "dot" binary is executed to produce a graph from the .dot text file Default value is: true. |
hide | String | - | Comma delimited list of patterns for hiding artifacts. The pattern syntax has the form - [scope]:[optional|required] Scopes: compile,provided,runtime,test,system,import Each pattern segment is optional and supports the use of the asterisk "*" as a wildcard. An empty pattern segment is treated as a wildcard. For example: Hide test dependencies -Dgraph.hide=test Hide test & provided dependencies -Dgraph.hide=test,provided Hide optional dependencies -Dgraph.hide=*:optional Hide required dependencies -Dgraph.hide=*:required If hide patterns are provided, a match with any hide pattern will prevent a dependency (and the dependency tree beneath it) from being displayed. Hide patterns override show patterns. If not provided, no dependencies are hidden. |
ignoreDotFailure | boolean | - | If true, the Maven build will continue even if the "dot" executable returns a non-zero exit value. Default value is: false. |
includes | String | - | Comma delimited list of patterns for including artifacts. The pattern syntax has the form - [groupId]:[artifactId]:[type]:[classifier]:[version] Each pattern segment is optional and supports the use of the asterisk "*" as a wildcard. An empty pattern segment is treated as a wildcard. If include patterns are provided, a dependency must match one of the include patterns or it (along with the dependency tree beneath it) will be hidden. If not provided, all dependencies are included. Include patterns are overridden by exclude patterns. |
keepDotFile | boolean | - | If true, the .dot text file Graphviz uses to draw the graph is retained Default value is: false. |
show | String | - | Comma delimited list of patterns for showing artifacts. The pattern syntax has the form - [scope]:[optional|required] Scopes: compile,provided,runtime,test,system,import Each pattern segment is optional and supports the use of the asterisk "*" as a wildcard. An empty pattern segment is treated as a wildcard. If show patterns are provided a dependency must match one of the show patterns or it (along with the dependency tree beneath it) will be hidden. Show patterns are overridden by hide patterns. If not provided, all artifacts are shown. |
showDuplicates | boolean | - | If true, duplicate dependencies are displayed on the graph. Default value is: false. |
showGroupIds | boolean | - | If true, artifact group id's are displayed on the graph. Default value is: true. |
showLegend | boolean | - | If true, any filters applied to the dependency tree are shown in the legend. Default value is: true. |
showTitle | boolean | - | If true, the title for the graph will be displayed. Default value is: true. |
skip | boolean | - | If true, mojo execution is skipped. Default value is: false. |
skipEmptyGraphs | boolean | - | If true, skip invoking Graphviz if there are no dependencies to graph. Default value is: true. |
title | String | - | The title for the graph Default value is: Dependency Graph for ${project.name}. |
transitive | boolean | - | If true, transitive dependencies are graphed. Default value is: true. |
verbose | boolean | - | If true, metadata about the dependency tree is displayed. Default value is: false. |
If true, any dependency marked as optional will have all of its transitive dependencies displayed as optional also.
Determines how conflicts in the dependency tree are displayed. Valid options are IGNORE, LABEL, and SHOW.
IGNORE, ignores conflicts and draws the graph without any reference to them.
LABEL, draws a red line with the word "conflict" for any spots in the dependency tree where there are conflicts.
SHOW, draws a red line, and also shows what version of the artifact was conflicted out of the build.
Maven supports the resolution of artifact versions by way of nearest-wins. That is, for any set of dependencies that share the same groupId:artifactId:type:classifier, the one declared nearest to the current project in the dependency tree will be selected for use.
Restricts the depth of the dependency tree.
To show only the dependencies of the current project, set this to 1. To show the dependencies of the current project and their direct dependencies, set this to 2.
The direction for the graph layout. Valid values are TB, LR, BT, RL. Top to bottom, left to right, bottom to top, and right to left, respectively.
Controls what dependencies are displayed on the graph by applying different filtering techniques. Valid options are PATH, TREE, and PT (path and tree).
NOTE: Support for display types other than TREE should be considered experimental. PATH and PT are not fully implemented or tested. Use at your own risk.
TREE prunes the dependency tree from the top down. Recursive traversal of transitive dependencies stops when a dependency does not match the filter criteria. Any further transitive dependencies in that part of the dependency tree are not displayed.
PATH searches the entire tree for any dependencies matching the filter criteria. All matching dependencies are displayed. In addition, the dependencies in the path from any matching dependency back to the top of the dependency tree are displayed. Dependencies in the path from a matching dependency to the top of the tree are always displayed, even if they do not match the filter criteria themselves.
PT is similar to PATH. The difference between PT and PATH is that PT shows the transitive dependencies of dependencies matching the filter criteria in addition to the dependencies in the path back to the top of the dependency tree.
Comma delimited list of artifact patterns to exclude. The pattern syntax has the form - [groupId]:[artifactId]:[type]:[classifier]:[version]
Each pattern segment is optional and supports the use of the asterisk "*" as a wildcard. An empty pattern segment is treated as a wildcard.
For example:
Exclude commons-logging -Dgraph.excludes=commons-logging Exclude logging in general -Dgraph.excludes=commons-logging,org.slf4j,log4j Exclude war files -Dgraph.excludes=*:*:war Exclude source -Dgraph.excludes=:::sources
If exclude patterns are provided, a match with any exclude pattern will prevent a dependency (and the dependency tree beneath it) from being displayed.
Exclude patterns override include patterns.
If not provided, no artifacts are excluded.
If true, the Graphviz "dot" binary is executed to produce a graph from the .dot text file
file:
The file the graph will be written to. The file extension can be any output format supported by Graphviz (png, jpg, gif, pdf, ...)
hide:
Comma delimited list of patterns for hiding artifacts. The pattern syntax has the form - [scope]:[optional|required]
Scopes: compile,provided,runtime,test,system,import
Each pattern segment is optional and supports the use of the asterisk "*" as a wildcard. An empty pattern segment is treated as a wildcard.
For example:
Hide test dependencies -Dgraph.hide=test Hide test & provided dependencies -Dgraph.hide=test,provided Hide optional dependencies -Dgraph.hide=*:optional Hide required dependencies -Dgraph.hide=*:required
If hide patterns are provided, a match with any hide pattern will prevent a dependency (and the dependency tree beneath it) from being displayed.
Hide patterns override show patterns.
If not provided, no dependencies are hidden.
If true, the Maven build will continue even if the "dot" executable returns a non-zero exit value.
Comma delimited list of patterns for including artifacts. The pattern syntax has the form - [groupId]:[artifactId]:[type]:[classifier]:[version]
Each pattern segment is optional and supports the use of the asterisk "*" as a wildcard. An empty pattern segment is treated as a wildcard.
If include patterns are provided, a dependency must match one of the include patterns or it (along with the dependency tree beneath it) will be hidden.
If not provided, all dependencies are included.
Include patterns are overridden by exclude patterns.
If true, the .dot text file Graphviz uses to draw the graph is retained
The style for the graph layout. Valid options are LINKED and FLAT
In LINKED mode, the relationships between shared dependencies are shown. Each dependency included in the build is displayed on the graph only once. The connections between dependencies are presented by Graphviz algorithms as a directed hierarchical graph.
For a transitive dependency, LINKED mode illustrates why Maven includes it in the build.
For a shared dependency (eg commons-logging), LINKED mode shows what other libraries depend on it.
LINKED mode also shows the decisions Maven makes when resolving conflicts between pom's that depend on different versions of the same artifact.
In FLAT mode, dependencies are displayed exactly how they are defined in the pom's. This style can make it easier to comprehend the dependency tree but relationships between shared dependencies are not drawn.
show:
Comma delimited list of patterns for showing artifacts. The pattern syntax has the form - [scope]:[optional|required]
Scopes: compile,provided,runtime,test,system,import
Each pattern segment is optional and supports the use of the asterisk "*" as a wildcard. An empty pattern segment is treated as a wildcard.
If show patterns are provided a dependency must match one of the show patterns or it (along with the dependency tree beneath it) will be hidden.
Show patterns are overridden by hide patterns.
If not provided, all artifacts are shown.
If true, duplicate dependencies are displayed on the graph.
If true, artifact group id's are displayed on the graph.
If true, any filters applied to the dependency tree are shown in the legend.
If true, the title for the graph will be displayed.
skip:
If true, mojo execution is skipped.
If true, skip invoking Graphviz if there are no dependencies to graph.
The title for the graph
If true, transitive dependencies are graphed.
If true, metadata about the dependency tree is displayed.