graph:multi

Full name:

org.kuali.maven.plugins:graph-maven-plugin:1.2.0:multi

Description:

Convenience mojo for generating multiple graphs.

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: compile|test|runtime.

Required Parameters

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.
outputDir File -

The directory graphs are generated into.


Default value is: ${project.build.directory}/graph.
outputFormat String -

The output format for the graph. This can be any format supported by Graphviz (png, jpg, gif, pdf, ...)


Default value is: png.

Optional Parameters

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.
descriptors List -

List of graph descriptors

For example:

<descriptors>
  <descriptor>
    <includes>org.slf4j,log4j</includes>
  </descriptor>
  <descriptor>
    <includes>commons-logging</includes>
    <filterType>PATH</filterType>
  </descriptor>
</descriptors>

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.
executeDot boolean -

If true, the Graphviz "dot" binary is executed to produce a graph from the .dot text file


Default value is: true.
generateDefaultGraphs boolean -

If true, the default set of graphs is generated in addition to those provided in the descriptors list.


Default value is: true.
ignoreDotFailure boolean -

If true, the Maven build will continue even if the "dot" executable returns a non-zero exit value.


Default value is: false.
keepDotFile boolean -

If true, the .dot text file Graphviz uses to draw the graph is retained


Default value is: false.
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}.
verbose boolean -

If true, metadata about the dependency tree is displayed.


Default value is: false.

Parameter Details

cascadeOptional:

If true, any dependency marked as optional will have all of its transitive dependencies displayed as optional also.

  • Type: boolean
  • Required: No
  • Expression: ${graph.cascadeOptional}
  • Default: true

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.

  • Type: org.kuali.maven.plugins.graph.pojo.Conflicts
  • Required: No
  • Expression: ${graph.conflicts}
  • Default: IGNORE

descriptors:

List of graph descriptors

For example:

<descriptors>
  <descriptor>
    <includes>org.slf4j,log4j</includes>
  </descriptor>
  <descriptor>
    <includes>commons-logging</includes>
    <filterType>PATH</filterType>
  </descriptor>
</descriptors>
  • Type: java.util.List
  • Required: No

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.

  • Type: org.kuali.maven.plugins.graph.pojo.Direction
  • Required: Yes
  • Expression: ${graph.direction}
  • Default: TB

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.

  • Type: org.kuali.maven.plugins.graph.pojo.Display
  • Required: No
  • Expression: ${graph.display}
  • Default: TREE

executeDot:

If true, the Graphviz "dot" binary is executed to produce a graph from the .dot text file

  • Type: boolean
  • Required: No
  • Expression: ${graph.executeDot}
  • Default: true

generateDefaultGraphs:

If true, the default set of graphs is generated in addition to those provided in the descriptors list.

  • Type: boolean
  • Required: No
  • Expression: ${graph.generateDefaultGraphs}
  • Default: true

ignoreDotFailure:

If true, the Maven build will continue even if the "dot" executable returns a non-zero exit value.

  • Type: boolean
  • Required: No
  • Expression: ${graph.ignoreDotFailure}
  • Default: false

keepDotFile:

If true, the .dot text file Graphviz uses to draw the graph is retained

  • Type: boolean
  • Required: No
  • Expression: ${graph.keepDotFile}
  • Default: false

outputDir:

The directory graphs are generated into.

  • Type: java.io.File
  • Required: Yes
  • Expression: ${graph.outputDir}
  • Default: ${project.build.directory}/graph

outputFormat:

The output format for the graph. This can be any format supported by Graphviz (png, jpg, gif, pdf, ...)

  • Type: java.lang.String
  • Required: Yes
  • Expression: ${graph.outputFormat}
  • Default: png

showDuplicates:

If true, duplicate dependencies are displayed on the graph.

  • Type: boolean
  • Required: No
  • Expression: ${graph.showDuplicates}
  • Default: false

showGroupIds:

If true, artifact group id's are displayed on the graph.

  • Type: boolean
  • Required: No
  • Expression: ${graph.showGroupIds}
  • Default: true

showLegend:

If true, any filters applied to the dependency tree are shown in the legend.

  • Type: boolean
  • Required: No
  • Expression: ${graph.showLegend}
  • Default: true

showTitle:

If true, the title for the graph will be displayed.

  • Type: boolean
  • Required: No
  • Expression: ${graph.showTitle}
  • Default: true

skip:

If true, mojo execution is skipped.

  • Type: boolean
  • Required: No
  • Expression: ${graph.skip}
  • Default: false

skipEmptyGraphs:

If true, skip invoking Graphviz if there are no dependencies to graph.

  • Type: boolean
  • Required: No
  • Expression: ${graph.skipEmptyGraphs}
  • Default: true

title:

The title for the graph

  • Type: java.lang.String
  • Required: No
  • Expression: ${graph.title}
  • Default: Dependency Graph for ${project.name}

verbose:

If true, metadata about the dependency tree is displayed.

  • Type: boolean
  • Required: No
  • Expression: ${graph.verbose}
  • Default: false