dependency:analyze

Full name:

org.apache.maven.plugins:maven-dependency-plugin:3.0.1:analyze

Description:

Analyzes the dependencies of this project and determines which are: used and declared; used and undeclared; unused and declared. This goal is intended to be used standalone, thus it always executes the test-compile phase - use the dependency:analyze-only goal instead when participating in the build lifecycle.

By default, maven-dependency-analyzer is used to perform the analysis, with limitations due to the fact that it works at bytecode level, but any analyzer can be plugged in through analyzer parameter.

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: test.
  • The goal is thread-safe and supports parallel builds.
  • Since version: 2.0-alpha-3.
  • Invokes the execution of the lifecycle phase test-compile prior to executing itself.

Optional Parameters

Name Type Since Description
analyzer String 2.2 Specify the project dependency analyzer to use (plexus component role-hint). By default, maven-dependency-analyzer is used. To use this, you must declare a dependency for this plugin that contains the code for the analyzer. The analyzer must have a declared Plexus role name, and you specify the role name here.
Default value is: default.
User property is: analyzer.
failOnWarning boolean 2.0-alpha-3 Whether to fail the build if a dependency warning is found.
Default value is: false.
User property is: failOnWarning.
ignoreNonCompile boolean 2.0-alpha-3 Ignore Runtime/Provided/Test/System scopes for unused dependency analysis.
Default value is: false.
User property is: ignoreNonCompile.
ignoredDependencies String[] 2.10 List of dependencies that will be ignored. Any dependency on this list will be excluded from the "declared but unused" and the "used but undeclared" list. The filter syntax is:
[groupId]:[artifactId]:[type]:[version]
where each pattern segment is optional and supports full and partial * wildcards. An empty pattern segment is treated as an implicit wildcard. *

For example, org.apache.* will match all artifacts whose group id starts with org.apache., and :::*-SNAPSHOT will match all snapshot artifacts.


ignoredUnusedDeclaredDependencies String[] 2.10 List of dependencies that will be ignored if they are declared but unused. The filter syntax is:
[groupId]:[artifactId]:[type]:[version]
where each pattern segment is optional and supports full and partial * wildcards. An empty pattern segment is treated as an implicit wildcard. *

For example, org.apache.* will match all artifacts whose group id starts with org.apache., and :::*-SNAPSHOT will match all snapshot artifacts.


ignoredUsedUndeclaredDependencies String[] 2.10 List of dependencies that will be ignored if they are used but undeclared. The filter syntax is:
[groupId]:[artifactId]:[type]:[version]
where each pattern segment is optional and supports full and partial * wildcards. An empty pattern segment is treated as an implicit wildcard. *

For example, org.apache.* will match all artifacts whose group id starts with org.apache., and :::*-SNAPSHOT will match all snapshot artifacts.


outputXML boolean 2.0-alpha-5 Output the xml for the missing dependencies (used but not declared).
Default value is: false.
User property is: outputXML.
scriptableFlag String 2.0-alpha-5 Flag to use for scriptable output.
Default value is: $$$%%%.
User property is: scriptableFlag.
scriptableOutput boolean 2.0-alpha-5 Output scriptable values for the missing dependencies (used but not declared).
Default value is: false.
User property is: scriptableOutput.
skip boolean 2.7 Skip plugin execution completely.
Default value is: false.
User property is: mdep.analyze.skip.
usedDependencies String[] 2.6 Force dependencies as used, to override incomplete result caused by bytecode-level analysis. Dependency format is groupId:artifactId.
verbose boolean 2.0-alpha-3 Output used dependencies.
Default value is: false.
User property is: verbose.

Parameter Details

analyzer:

Specify the project dependency analyzer to use (plexus component role-hint). By default, maven-dependency-analyzer is used. To use this, you must declare a dependency for this plugin that contains the code for the analyzer. The analyzer must have a declared Plexus role name, and you specify the role name here.
  • Type: java.lang.String
  • Since: 2.2
  • Required: No
  • User Property: analyzer
  • Default: default

failOnWarning:

Whether to fail the build if a dependency warning is found.
  • Type: boolean
  • Since: 2.0-alpha-3
  • Required: No
  • User Property: failOnWarning
  • Default: false

ignoreNonCompile:

Ignore Runtime/Provided/Test/System scopes for unused dependency analysis.
  • Type: boolean
  • Since: 2.0-alpha-3
  • Required: No
  • User Property: ignoreNonCompile
  • Default: false

ignoredDependencies:

List of dependencies that will be ignored. Any dependency on this list will be excluded from the "declared but unused" and the "used but undeclared" list. The filter syntax is:
[groupId]:[artifactId]:[type]:[version]
where each pattern segment is optional and supports full and partial * wildcards. An empty pattern segment is treated as an implicit wildcard. *

For example, org.apache.* will match all artifacts whose group id starts with org.apache., and :::*-SNAPSHOT will match all snapshot artifacts.

  • Type: java.lang.String[]
  • Since: 2.10
  • Required: No

ignoredUnusedDeclaredDependencies:

List of dependencies that will be ignored if they are declared but unused. The filter syntax is:
[groupId]:[artifactId]:[type]:[version]
where each pattern segment is optional and supports full and partial * wildcards. An empty pattern segment is treated as an implicit wildcard. *

For example, org.apache.* will match all artifacts whose group id starts with org.apache., and :::*-SNAPSHOT will match all snapshot artifacts.

  • Type: java.lang.String[]
  • Since: 2.10
  • Required: No

ignoredUsedUndeclaredDependencies:

List of dependencies that will be ignored if they are used but undeclared. The filter syntax is:
[groupId]:[artifactId]:[type]:[version]
where each pattern segment is optional and supports full and partial * wildcards. An empty pattern segment is treated as an implicit wildcard. *

For example, org.apache.* will match all artifacts whose group id starts with org.apache., and :::*-SNAPSHOT will match all snapshot artifacts.

  • Type: java.lang.String[]
  • Since: 2.10
  • Required: No

outputXML:

Output the xml for the missing dependencies (used but not declared).
  • Type: boolean
  • Since: 2.0-alpha-5
  • Required: No
  • User Property: outputXML
  • Default: false

scriptableFlag:

Flag to use for scriptable output.
  • Type: java.lang.String
  • Since: 2.0-alpha-5
  • Required: No
  • User Property: scriptableFlag
  • Default: $$$%%%

scriptableOutput:

Output scriptable values for the missing dependencies (used but not declared).
  • Type: boolean
  • Since: 2.0-alpha-5
  • Required: No
  • User Property: scriptableOutput
  • Default: false

skip:

Skip plugin execution completely.
  • Type: boolean
  • Since: 2.7
  • Required: No
  • User Property: mdep.analyze.skip
  • Default: false

usedDependencies:

Force dependencies as used, to override incomplete result caused by bytecode-level analysis. Dependency format is groupId:artifactId.
  • Type: java.lang.String[]
  • Since: 2.6
  • Required: No

verbose:

Output used dependencies.
  • Type: boolean
  • Since: 2.0-alpha-3
  • Required: No
  • User Property: verbose
  • Default: false