Remove redundant explicit dependency and plugin versions

org.openrewrite.maven.RemoveRedundantDependencyVersions

Remove explicitly-specified dependency/plugin versions when a parent POM's dependencyManagement/pluginManagement specifies the version.

Recipe source

GitHub, Issue Tracker, Maven Central

  • groupId: org.openrewrite

  • artifactId: rewrite-maven

  • version: 8.24.0

Options

TypeNameDescriptionExample

String

groupPattern

Optional. Group glob expression pattern used to match dependencies that should be managed.Group is the first part of a dependency coordinate com.google.guava:guava:VERSION.

com.google.*

String

artifactPattern

Optional. Artifact glob expression pattern used to match dependencies that should be managed.Artifact is the second part of a dependency coordinate com.google.guava:guava:VERSION.

guava*

Boolean

onlyIfVersionsMatch

Optional. Only remove the explicit version if it exactly matches the managed dependency version. When false explicit versions will be removed if they are older than or equal to the managed dependency version. Default true.

List

except

Optional. Accepts a list of GAVs. Dependencies matching a GAV will be ignored by this recipe. GAV versions are ignored if provided.

com.jcraft:jsch

Usage

This recipe has no required configuration parameters and comes from a rewrite core library. It can be activated directly without adding any dependencies.

  1. Add the following to your pom.xml file:

pom.xml
<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.openrewrite.maven</groupId>
        <artifactId>rewrite-maven-plugin</artifactId>
        <version>5.29.0</version>
        <configuration>
          <activeRecipes>
            <recipe>org.openrewrite.maven.RemoveRedundantDependencyVersions</recipe>
          </activeRecipes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
  1. Run mvn rewrite:run to run the recipe.

See how this recipe works across multiple open-source repositories

The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories.

Please contact Moderne for more information about safely running the recipes on your own codebase in a private SaaS.

Contributors

Sam Snyder, Nick McKinney, Kevin McCarpenter, Adriano Machado, Jonathan Schneider, Tim te Beek, Jonathan Leitschuh, Knut Wannheden

Last updated