Links
Comment on page

Maven dependency insight

org.openrewrite.maven.search.DependencyInsight
Find direct and transitive dependencies matching a group, artifact, and scope. Results include dependencies that either directly match or transitively include a matching dependency.

Recipe source

  • groupId: org.openrewrite
  • artifactId: rewrite-maven
  • version: 8.9.5

Options

Type
Name
Description
String
groupIdPattern
Group glob pattern used to match dependencies.
String
artifactIdPattern
Artifact glob pattern used to match dependencies.
String
scope
Optional. Match dependencies with the specified scope. All scopes are searched by default.
String
version
Optional. Match only dependencies with the specified version. Node-style version selectors may be used.All versions are searched by default.
Boolean
onlyDirect
Optional. If enabled, transitive dependencies will not be considered. All dependencies are searched by default.

Data Tables (Only available on the Moderne platform)

Dependencies in use

Direct and transitive dependencies in use.
Column Name
Description
Project name
The name of the project that contains the dependency.
Source set
The source set that contains the dependency.
Group
The first part of a dependency coordinate com.google.guava:guava:VERSION.
Artifact
The second part of a dependency coordinate com.google.guava:guava:VERSION.
Version
The resolved version.
Dated snapshot version
The resolved dated snapshot version or null if this dependency is not a snapshot.
Scope
Dependency scope. This will be compile if the dependency is direct and a scope is not explicitly specified in the POM.
Depth
How many levels removed from a direct dependency. This will be 0 for direct dependencies.

Usage

This recipe has required configuration parameters. Recipes with required configuration parameters cannot be activated directly. To activate this recipe you must create a new recipe which fills in the required parameters. In your rewrite.yml create a new recipe with a unique name. For example: com.yourorg.DependencyInsightExample. Here's how you can define and customize such a recipe within your rewrite.yml:
rewrite.yml
---
type: specs.openrewrite.org/v1beta/recipe
name: com.yourorg.DependencyInsightExample
displayName: Maven dependency insight example
recipeList:
- org.openrewrite.maven.search.DependencyInsight:
groupIdPattern: com.fasterxml.jackson.module
artifactIdPattern: jackson-module-*
scope: compile
version: 1.x
onlyDirect: true
Now that com.yourorg.DependencyInsightExample has been defined activate it in your build file:
Maven
Moderne CLI
  1. 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.13.0</version>
<configuration>
<activeRecipes>
<recipe>com.yourorg.DependencyInsightExample</recipe>
</activeRecipes>
</configuration>
</plugin>
</plugins>
</build>
</project>
  1. 2.
    Run mvn rewrite:run to run the recipe.
You will need to have configured the Moderne CLI on your machine before you can run the following command.
shell
mod run . --recipe DependencyInsight

See how this recipe works across multiple open-source repositories

Moderne Link Image
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