dependency:analyze

Full name:

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


See also: AnalyzeOnlyMojo

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 following lifecycle phase prior to executing itself: test-compile.

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: default
User Property: analyzer
<excludedClasses> Set<String> 3.7.0 List of class patterns excluded from analyze. Java regular expression pattern is applied to full class name.
User Property: mdep.analyze.excludedClasses
<failOnWarning> boolean - Whether to fail the build if a dependency warning is found.
Default: false
User Property: failOnWarning
<ignoreAllNonTestScoped> boolean 3.3.1-SNAPSHOT Ignore all dependencies that are used only in test but not test-scoped. Setting this flag has the same effect as adding all dependencies that have been flagged with the Non-test scoped test only dependencies found warning to the <ignoredNonTestScopedDependencies> configuration.
Default: false
User Property: ignoreAllNonTestScoped
<ignoreNonCompile> boolean - Ignore Runtime/Provided/Test/System scopes for unused dependency analysis.

Non-test scoped list will be not affected.


Default: false
User Property: ignoreNonCompile
<ignoreUnusedRuntime> boolean 3.2.0 Ignore Runtime scope for unused dependency analysis.
Default: false
User Property: ignoreUnusedRuntime
<ignoredDependencies> String[] 2.10 List of dependencies that will be ignored. Any dependency on this list will be excluded from the "declared but unused", the "used but undeclared", and the "non-test scoped" 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.

<ignoredNonTestScopedDependencies> String[] 3.3.0 List of dependencies that will be ignored if they are in not test scope but are only used in test classes. 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.

<ignoredPackagings> List<String> 3.2.1 List of project packaging that will be ignored.
Default value is: pom, ear
Default: pom,ear
<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: false
User Property: outputXML
<scriptableFlag> String 2.0-alpha-5 Flag to use for scriptable output.
Default: $$$%%%
User Property: scriptableFlag
<scriptableOutput> boolean 2.0-alpha-5 Output scriptable values for the missing dependencies (used but not declared).
Default: false
User Property: scriptableOutput
<skip> boolean 2.7 Skip plugin execution completely.
Default: false
User Property: 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 - Output used dependencies.
Default: false
User Property: 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

<excludedClasses>

List of class patterns excluded from analyze. Java regular expression pattern is applied to full class name.
  • Type: java.util.Set<java.lang.String>
  • Since: 3.7.0
  • Required: No
  • User Property: mdep.analyze.excludedClasses

<failOnWarning>

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

<ignoreAllNonTestScoped>

Ignore all dependencies that are used only in test but not test-scoped. Setting this flag has the same effect as adding all dependencies that have been flagged with the Non-test scoped test only dependencies found warning to the <ignoredNonTestScopedDependencies> configuration.
  • Type: boolean
  • Since: 3.3.1-SNAPSHOT
  • Required: No
  • User Property: ignoreAllNonTestScoped
  • Default: false

<ignoreNonCompile>

Ignore Runtime/Provided/Test/System scopes for unused dependency analysis.

Non-test scoped list will be not affected.

  • Type: boolean
  • Required: No
  • User Property: ignoreNonCompile
  • Default: false

<ignoreUnusedRuntime>

Ignore Runtime scope for unused dependency analysis.
  • Type: boolean
  • Since: 3.2.0
  • Required: No
  • User Property: ignoreUnusedRuntime
  • Default: false

<ignoredDependencies>

List of dependencies that will be ignored. Any dependency on this list will be excluded from the "declared but unused", the "used but undeclared", and the "non-test scoped" 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

<ignoredNonTestScopedDependencies>

List of dependencies that will be ignored if they are in not test scope but are only used in test classes. 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: 3.3.0
  • Required: No

<ignoredPackagings>

List of project packaging that will be ignored.
Default value is: pom, ear
  • Type: java.util.List<java.lang.String>
  • Since: 3.2.1
  • Required: No
  • Default: pom,ear

<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
  • Required: No
  • User Property: verbose
  • Default: false