depgraph:aggregate

Full name:

com.github.ferstl:depgraph-maven-plugin:4.0.1:aggregate

Description:

Aggregates all dependencies of a multi-module project into one single graph.

Attributes:

  • Requires a Maven project to be executed.
  • Executes as an aggregator plugin.
  • Is NOT inherited by default in multi-project builds.

Optional Parameters

Name Type Since Description
<classpathScope> String 4.0.0 The scope of the artifacts that should be included in the graph. An empty string indicates all scopes (default). The scopes being interpreted are the scopes as Maven sees them, not as specified in the pom. In summary:
  • compile: Equivalent to `-Dscopes=compile,provided,system`
  • provided: Equivalent to `-Dscopes=provided`
  • runtime: Equivalent to `-Dscopes=compile,runtime`
  • system: Equivalent to `-Dscopes=system`
  • test (default): Shows all dependencies
This parameter replaces the former scope parameter which was introduced in version 1.0.0.
User property is: classpathScope.
<createImage> boolean 1.0.0 Only relevant when graphFormat=dot: If set to true and Graphviz is installed on the system where this plugin is executed, the dot file will be converted to a graph image using Graphviz' dot executable.
Default value is: false.
User property is: createImage.
<customStyleConfiguration> String 2.0.0 Only relevant when graphFormat=dot: Path to a custom style configuration in JSON format.
User property is: customStyleConfiguration.
<dotArguments> String 4.0.0 Only relevant when graphFormat=dot and createImage=true: Additional arguments for the dot executable (besides -T and -o).
User property is: dotArguments.
<dotExecutable> File 1.0.0 Only relevant when graphFormat=dot and createImage=true: Path to the dot executable. Use this option in case createImage is set to true and the dot executable is not on the system PATH.
User property is: dotExecutable.
<excludeOptionalDependencies> boolean 3.2.0 Indicates whether optional dependencies should be excluded from the graph.
Default value is: false.
User property is: excludeOptionalDependencies.
<excludes> List 1.0.0 List of artifacts to be excluded in the form of groupId:artifactId:type:classifier.
User property is: excludes.
<graphFormat> String 2.1.0 Format of the graph, either "dot" (default), "gml", "puml", "json" or "text".
Default value is: dot.
User property is: graphFormat.
<imageFormat> String 1.0.0 Only relevant when graphFormat=dot: The format for the graph image when createImage is set to true.
Default value is: png.
User property is: imageFormat.
<includeParentProjects> boolean 1.0.0 If set to true, all parent modules (<packaging>pom</packaging>) will be shown as nodes with edges pointing to their child modules.
Default value is: false.
User property is: includeParentProjects.
<includes> List 1.0.0 List of artifacts to be included in the form of groupId:artifactId:type:classifier.
User property is: includes.
<mergeClassifiers> boolean 3.0.0 Merge dependencies with multiple classifiers into one graph node instead of having a node per classifier.
Default value is: false.
User property is: mergeClassifiers.
<mergeScopes> boolean 2.0.0 Merge dependencies that occur in multiple scopes into one graph node instead of having a node per scope.
Default value is: false.
User property is: mergeScopes.
<mergeTypes> boolean 3.0.0 Merge dependencies with multiple types into one graph node instead of having a node per type.
Default value is: false.
User property is: mergeTypes.
<outputDirectory> File 2.2.0 Output directory to write the dependency graph to. The default is the project's build directory. For goals that don't require a project the current directory will be used.
Default value is: ${project.build.directory}.
User property is: outputDirectory.
<outputFileName> String 2.2.0 The name of the dependency graph file. A file extension matching the configured graphFormat will be added if not specified.
Default value is: dependency-graph.
User property is: outputFileName.
<printStyleConfiguration> boolean 2.0.0 Only relevant when graphFormat=dot: If set to true the effective style configuration used to create this graph will be printed on the console.
Default value is: false.
User property is: printStyleConfiguration.
<reduceEdges> boolean 3.0.0 Omit all edges that are already reachable via a different path in the dependency graph. This will prefer dependencies of modules that are higher in the reactor build order and thus reflect the architecture of the application better.
Default value is: true.
User property is: reduceEdges.
<repeatTransitiveDependenciesInTextGraph> boolean 3.0.0 If set to true, this option will repeat all transitive dependencies in the text graph.
Example:
Suppose a dependency graph with one child node containing a transitive dependency and a second child node with a dependency to the first child node.
When this option is disabled, the graph will look like this:
  root
  +- child-1
  |  \- child-1.1
  +- child-2
     \- child-1
When this option is enabled, the graph will show the transitive dependencies of child-1 on child-2 as well:
  root
  +- child-1
  |  \- child-1.1
  +- child-2
     \- child-1
        \- child-1.1

Default value is: false.
User property is: repeatTransitiveDependenciesInTextGraph.
<scope> String 1.0.0 Deprecated. Use classpathScope instead.
User property is: scope.
<scopes> List 4.0.0 List of dependency scopes to be included in the graph. If empty, all scopes are included.
User property is: scopes.
<showAllAttributesForJson> boolean 3.0.0 If set to true (which is the default) and the graph format is 'json', the graph will show any information that is possible. The idea behind this option is, that the consumer of the JSON data, for example a Javascript library, will do its own filtering of the data.
Default value is: true.
User property is: showAllAttributesForJson.
<showClassifiers> boolean 3.0.0 If set to true, the created graph will show classifier information an all artifacts.
Default value is: false.
User property is: showClassifiers.
<showGroupIds> boolean 1.0.3 If set to true, the created graph will show the groupId on all artifacts.
Default value is: false.
User property is: showGroupIds.
<showOptional> boolean 3.2.0 If set to true, the created graph will mark optional dependencies.
Default value is: true.
User property is: showOptional.
<showTypes> boolean 3.0.0 If set to true, the created graph will show type information an all artifacts.
Default value is: false.
User property is: showTypes.
<showVersions> boolean 1.0.0 If set to true the artifact nodes will show version information.
Default value is: false.
User property is: showVersions.
<skip> boolean 3.3.0 Skip execution when set to true.
Default value is: false.
User property is: depgraph.skip.
<targetIncludes> List 1.0.4 List of artifacts, in the form of groupId:artifactId:type:classifier, to restrict the dependency graph only to artifacts that depend on them.
User property is: targetIncludes.
<transitiveExcludes> List 3.0.0 List of artifacts in the form of groupId:artifactId:type:classifier to be excluded if they are transitive.
User property is: transitiveExcludes.
<transitiveIncludes> List 3.0.0 List of artifacts in the form of groupId:artifactId:type:classifier to be included if they are transitive.
User property is: transitiveIncludes.
<useArtifactIdInFileName> boolean 2.2.0 Indicates whether the project's artifact ID should be used as file name for the generated graph files.
  • This flag does not have an effect when the (deprecated) outputFile parameter is used.
  • When set to true, the content of the outputFileName parameter is ignored.

Default value is: false.
User property is: useArtifactIdInFileName.

Parameter Details

<classpathScope>

The scope of the artifacts that should be included in the graph. An empty string indicates all scopes (default). The scopes being interpreted are the scopes as Maven sees them, not as specified in the pom. In summary:
  • compile: Equivalent to `-Dscopes=compile,provided,system`
  • provided: Equivalent to `-Dscopes=provided`
  • runtime: Equivalent to `-Dscopes=compile,runtime`
  • system: Equivalent to `-Dscopes=system`
  • test (default): Shows all dependencies
This parameter replaces the former scope parameter which was introduced in version 1.0.0.
  • Type: java.lang.String
  • Since: 4.0.0
  • Required: No
  • User Property: classpathScope

<createImage>

Only relevant when graphFormat=dot: If set to true and Graphviz is installed on the system where this plugin is executed, the dot file will be converted to a graph image using Graphviz' dot executable.
  • Type: boolean
  • Since: 1.0.0
  • Required: No
  • User Property: createImage
  • Default: false

<customStyleConfiguration>

Only relevant when graphFormat=dot: Path to a custom style configuration in JSON format.
  • Type: java.lang.String
  • Since: 2.0.0
  • Required: No
  • User Property: customStyleConfiguration

<dotArguments>

Only relevant when graphFormat=dot and createImage=true: Additional arguments for the dot executable (besides -T and -o).
  • Type: java.lang.String
  • Since: 4.0.0
  • Required: No
  • User Property: dotArguments

<dotExecutable>

Only relevant when graphFormat=dot and createImage=true: Path to the dot executable. Use this option in case createImage is set to true and the dot executable is not on the system PATH.
  • Type: java.io.File
  • Since: 1.0.0
  • Required: No
  • User Property: dotExecutable

<excludeOptionalDependencies>

Indicates whether optional dependencies should be excluded from the graph.
  • Type: boolean
  • Since: 3.2.0
  • Required: No
  • User Property: excludeOptionalDependencies
  • Default: false

<excludes>

List of artifacts to be excluded in the form of groupId:artifactId:type:classifier.
  • Type: java.util.List
  • Since: 1.0.0
  • Required: No
  • User Property: excludes

<graphFormat>

Format of the graph, either "dot" (default), "gml", "puml", "json" or "text".
  • Type: java.lang.String
  • Since: 2.1.0
  • Required: No
  • User Property: graphFormat
  • Default: dot

<imageFormat>

Only relevant when graphFormat=dot: The format for the graph image when createImage is set to true.
  • Type: java.lang.String
  • Since: 1.0.0
  • Required: No
  • User Property: imageFormat
  • Default: png

<includeParentProjects>

If set to true, all parent modules (<packaging>pom</packaging>) will be shown as nodes with edges pointing to their child modules.
  • Type: boolean
  • Since: 1.0.0
  • Required: No
  • User Property: includeParentProjects
  • Default: false

<includes>

List of artifacts to be included in the form of groupId:artifactId:type:classifier.
  • Type: java.util.List
  • Since: 1.0.0
  • Required: No
  • User Property: includes

<mergeClassifiers>

Merge dependencies with multiple classifiers into one graph node instead of having a node per classifier.
  • Type: boolean
  • Since: 3.0.0
  • Required: No
  • User Property: mergeClassifiers
  • Default: false

<mergeScopes>

Merge dependencies that occur in multiple scopes into one graph node instead of having a node per scope.
  • Type: boolean
  • Since: 2.0.0
  • Required: No
  • User Property: mergeScopes
  • Default: false

<mergeTypes>

Merge dependencies with multiple types into one graph node instead of having a node per type.
  • Type: boolean
  • Since: 3.0.0
  • Required: No
  • User Property: mergeTypes
  • Default: false

<outputDirectory>

Output directory to write the dependency graph to. The default is the project's build directory. For goals that don't require a project the current directory will be used.
  • Type: java.io.File
  • Since: 2.2.0
  • Required: No
  • User Property: outputDirectory
  • Default: ${project.build.directory}

<outputFileName>

The name of the dependency graph file. A file extension matching the configured graphFormat will be added if not specified.
  • Type: java.lang.String
  • Since: 2.2.0
  • Required: No
  • User Property: outputFileName
  • Default: dependency-graph

<printStyleConfiguration>

Only relevant when graphFormat=dot: If set to true the effective style configuration used to create this graph will be printed on the console.
  • Type: boolean
  • Since: 2.0.0
  • Required: No
  • User Property: printStyleConfiguration
  • Default: false

<reduceEdges>

Omit all edges that are already reachable via a different path in the dependency graph. This will prefer dependencies of modules that are higher in the reactor build order and thus reflect the architecture of the application better.
  • Type: boolean
  • Since: 3.0.0
  • Required: No
  • User Property: reduceEdges
  • Default: true

<repeatTransitiveDependenciesInTextGraph>

If set to true, this option will repeat all transitive dependencies in the text graph.
Example:
Suppose a dependency graph with one child node containing a transitive dependency and a second child node with a dependency to the first child node.
When this option is disabled, the graph will look like this:
  root
  +- child-1
  |  \- child-1.1
  +- child-2
     \- child-1
When this option is enabled, the graph will show the transitive dependencies of child-1 on child-2 as well:
  root
  +- child-1
  |  \- child-1.1
  +- child-2
     \- child-1
        \- child-1.1
  • Type: boolean
  • Since: 3.0.0
  • Required: No
  • User Property: repeatTransitiveDependenciesInTextGraph
  • Default: false

<scope>

Deprecated. Use classpathScope instead.
The scope of the artifacts that should be included in the graph. An empty string indicates all scopes (default). The scopes being interpreted are the scopes as Maven sees them, not as specified in the pom. In summary:
  • compile: Shows compile, provided and system dependencies
  • provided: Shows provided dependencies
  • runtime: Shows compile and runtime dependencies
  • system: Shows system dependencies
  • test (default): Shows all dependencies
  • Type: java.lang.String
  • Since: 1.0.0
  • Required: No
  • User Property: scope

<scopes>

List of dependency scopes to be included in the graph. If empty, all scopes are included.
  • Type: java.util.List
  • Since: 4.0.0
  • Required: No
  • User Property: scopes

<showAllAttributesForJson>

If set to true (which is the default) and the graph format is 'json', the graph will show any information that is possible. The idea behind this option is, that the consumer of the JSON data, for example a Javascript library, will do its own filtering of the data.
  • Type: boolean
  • Since: 3.0.0
  • Required: No
  • User Property: showAllAttributesForJson
  • Default: true

<showClassifiers>

If set to true, the created graph will show classifier information an all artifacts.
  • Type: boolean
  • Since: 3.0.0
  • Required: No
  • User Property: showClassifiers
  • Default: false

<showGroupIds>

If set to true, the created graph will show the groupId on all artifacts.
  • Type: boolean
  • Since: 1.0.3
  • Required: No
  • User Property: showGroupIds
  • Default: false

<showOptional>

If set to true, the created graph will mark optional dependencies.
  • Type: boolean
  • Since: 3.2.0
  • Required: No
  • User Property: showOptional
  • Default: true

<showTypes>

If set to true, the created graph will show type information an all artifacts.
  • Type: boolean
  • Since: 3.0.0
  • Required: No
  • User Property: showTypes
  • Default: false

<showVersions>

If set to true the artifact nodes will show version information.
  • Type: boolean
  • Since: 1.0.0
  • Required: No
  • User Property: showVersions
  • Default: false

<skip>

Skip execution when set to true.
  • Type: boolean
  • Since: 3.3.0
  • Required: No
  • User Property: depgraph.skip
  • Default: false

<targetIncludes>

List of artifacts, in the form of groupId:artifactId:type:classifier, to restrict the dependency graph only to artifacts that depend on them.
  • Type: java.util.List
  • Since: 1.0.4
  • Required: No
  • User Property: targetIncludes

<transitiveExcludes>

List of artifacts in the form of groupId:artifactId:type:classifier to be excluded if they are transitive.
  • Type: java.util.List
  • Since: 3.0.0
  • Required: No
  • User Property: transitiveExcludes

<transitiveIncludes>

List of artifacts in the form of groupId:artifactId:type:classifier to be included if they are transitive.
  • Type: java.util.List
  • Since: 3.0.0
  • Required: No
  • User Property: transitiveIncludes

<useArtifactIdInFileName>

Indicates whether the project's artifact ID should be used as file name for the generated graph files.
  • This flag does not have an effect when the (deprecated) outputFile parameter is used.
  • When set to true, the content of the outputFileName parameter is ignored.
  • Type: boolean
  • Since: 2.2.0
  • Required: No
  • User Property: useArtifactIdInFileName
  • Default: false