← All recipes
Open source

Change Maven dependency

Recipe IDorg.openrewrite.maven.ChangeDependencyGroupIdAndArtifactId
Artifactorg.openrewrite:rewrite-maven

Change a Maven dependency coordinates. The newGroupId or newArtifactId **MUST** be different from before. Matching <dependencyManagement> coordinates are also updated if a newVersion or versionPattern is provided. Exclusions that reference the old dependency coordinates are preserved, and a sibling exclusion for the new coordinates is added alongside them.

Single recipeApache 2.0

Usage

You’ll need the Moderne CLI configured before running the command below.

mod run . --recipe org.openrewrite.maven.ChangeDependencyGroupIdAndArtifactId --recipe-option "oldGroupId=org.openrewrite.recipe" --recipe-option "oldArtifactId=rewrite-testing-frameworks"

If the recipe isn’t available locally, install it with:

mod config recipes jar install org.openrewrite:rewrite-maven:8.88.0

Options

NameTypeDescription
oldGroupIdrequiredStringThe old groupId to replace. The groupId is the first part of a dependency coordinate com.google.guava:guava:VERSION. Supports glob expressions.
e.g. org.openrewrite.recipe
oldArtifactIdrequiredStringThe old artifactId to replace. The artifactId is the second part of a dependency coordinate com.google.guava:guava:VERSION. Supports glob expressions.
e.g. rewrite-testing-frameworks
newGroupIdStringThe new groupId to use. Defaults to the existing group id.
e.g. corp.internal.openrewrite.recipe
newArtifactIdStringThe new artifactId to use. Defaults to the existing artifact id.
e.g. rewrite-testing-frameworks
newVersionStringAn exact version number or node-style semver selector used to select the version number.
e.g. 29.X
versionPatternStringAllows version selection to be extended beyond the original Node Semver semantics. So for example,Setting 'version' to "25-29" can be paired with a metadata pattern of "-jre" to select Guava 29.0-jre
e.g. -jre
overrideManagedVersionBooleanIf the new dependency has a managed version, this flag can be used to explicitly set the version on the dependency. The default for this flag is false.
changeManagedDependencyBooleanAlso update the dependency management section. The default for this flag is true.

Data tables

Structured output this recipe can produce.

  • Maven metadata failuresAttempts to resolve maven metadata that failed.org.openrewrite.maven.table.MavenMetadataFailures
  • Source files that had resultsSource files that were modified by the recipe run.org.openrewrite.table.SourcesFileResults
  • Source files that had search resultsSearch results that were found during the recipe run.org.openrewrite.table.SearchResults
  • Source files that errored on a recipeThe details of all errors produced by a recipe run.org.openrewrite.table.SourcesFileErrors
  • Recipe performanceStatistics used in analyzing the performance of recipes.org.openrewrite.table.RecipeRunStats