depgraph:aggregate-by-groupid

Full name:

com.github.ferstl:depgraph-maven-plugin:3.3.0:aggregate-by-groupid

Description:

Aggregates all dependencies of a multi-module by their group IDs.

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
<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.
<dotExecutable> File 1.0.0 Only relevant when graphFormat=dot: 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.
<includes> List 1.0.0 List of artifacts to be included in the form of groupId:artifactId:type:classifier.
User property is: includes.
<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.
<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 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

User property is: scope.
<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.
<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

<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

<dotExecutable>

Only relevant when graphFormat=dot: 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

<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

<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

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

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

<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

<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