dependency:analyze

Full name:

org.apache.maven.plugins:maven-dependency-plugin:3.1.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.
  • 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