graph:report

Note:This goal should be used as a Maven report.

Full name:

org.kuali.maven.plugins:graph-maven-plugin:1.1.5-SNAPSHOT:report

Description:

Generate a set of common dependency graphs and a report linking to them during Maven site generation.

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

Output folder where the main page of the report will be generated.

Note that this parameter is only relevant if the goal is run directly from the command line or from the default lifecycle. If the goal is run indirectly as part of site generation, the output directory configured in the Maven Site Plugin will be used instead.


subDirectory String -

Sub-directory underneath the output folder where graphs are created.


Default value is: graph.

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

List of graphs to generate organized into categories and rows.

For example:

<categories>
  <category>
    <name>logging</name>
    <description>Dependencies on logging libraries</description>
    <rows>
      <row>
        <name>logging</name>
        <description>Dependencies on logging libraries</description>
        <descriptors>
          <descriptor>
            <includes>org.slf4j,log4j</includes>
            <name>other-logging</name>
          </descriptor>
          <descriptor>
            <includes>commons-logging</includes>
            <filterType>PATH</filterType>
            <name>commons-logging</name>
          </descriptor>
        </descriptors>
      </row>
    </rows>
  </category>
</categories>

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 categories 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.
showConflicts boolean -

If true, dependency conflicts are displayed on the graph. This will show the version a downstream pom declared for a dependency along with an arrow to the replacement version Maven is using instead.

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: 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

categories:

List of graphs to generate organized into categories and rows.

For example:

<categories>
  <category>
    <name>logging</name>
    <description>Dependencies on logging libraries</description>
    <rows>
      <row>
        <name>logging</name>
        <description>Dependencies on logging libraries</description>
        <descriptors>
          <descriptor>
            <includes>org.slf4j,log4j</includes>
            <name>other-logging</name>
          </descriptor>
          <descriptor>
            <includes>commons-logging</includes>
            <filterType>PATH</filterType>
            <name>commons-logging</name>
          </descriptor>
        </descriptors>
      </row>
    </rows>
  </category>
</categories>
  • 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 categories 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

reportOutputDirectory:

Output folder where the main page of the report will be generated.

Note that this parameter is only relevant if the goal is run directly from the command line or from the default lifecycle. If the goal is run indirectly as part of site generation, the output directory configured in the Maven Site Plugin will be used instead.

  • Type: java.io.File
  • Required: Yes
  • Expression: ${project.reporting.outputDirectory}

showConflicts:

If true, dependency conflicts are displayed on the graph. This will show the version a downstream pom declared for a dependency along with an arrow to the replacement version Maven is using instead.

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: boolean
  • Required: No
  • Expression: ${graph.showConflicts}
  • Default: false

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

subDirectory:

Sub-directory underneath the output folder where graphs are created.

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

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