Skip to content

Conversation

@bmuschko
Copy link
Contributor

@bmuschko bmuschko commented Oct 22, 2025

What's changed?

Adds a new column to the Maven and Gradle DependencyInsight recipes that renders the full dependency graph for a dependency.

What's your motivation?

Allow end users to find out where a dependency comes from.

Anything in particular you'd like reviewers to focus on?

I made an additional change independent of rendering the dependency graph which is the deduplication of dependencies that appear in the graph multiple times (usually rendered by Gradle with the * character to indicate a dependency duplicate).

In regards to the change to the test DependencyInsightTest.nestedDependenciesAreTransitivelySearchedForMatchingDependencies().

Example:

The dependency spring-boot-starter-logging:2.6.6 is not "missing". It's being deduplicated because both spring-boot-starter-web and spring-boot-starter-actuator depend on spring-boot-starter:2.6.6, which contains spring-boot-starter-logging. The dependency only needs to be listed once in the markers, and it appears under the first dependency that brings it in (spring-boot-starter-web).

org.springframework.boot:spring-boot-starter-logging:2.6.6
\--- org.springframework.boot:spring-boot-starter:2.6.6
     +--- org.springframework.boot:spring-boot-dependencies:2.6.15 (requested org.springframework.boot:spring-boot-starter:2.6.15)
     |    +--- io.pivotal.cfenv:java-cfenv-boot:2.5.0
     |    |    \--- compileClasspath
     |    \--- io.pivotal.cfenv:java-cfenv:2.5.0
     |         +--- io.pivotal.cfenv:java-cfenv-boot:2.5.0 (*)
     |         \--- io.pivotal.cfenv:java-cfenv-jdbc:2.5.0
     |              \--- io.pivotal.cfenv:java-cfenv-boot:2.5.0 (*)
     +--- org.springframework.boot:spring-boot-starter-web:2.6.6
     |    +--- compileClasspath (requested org.springframework.boot:spring-boot-starter-web)
     |    \--- org.springframework.boot:spring-boot-dependencies:2.6.15 (requested org.springframework.boot:spring-boot-starter-web:2.6.15) (*)
     +--- org.springframework.boot:spring-boot-starter-actuator:2.6.4 (requested org.springframework.boot:spring-boot-starter:2.6.4)
     |    +--- compileClasspath
     |    \--- org.springframework.boot:spring-boot-dependencies:2.6.15 (requested org.springframework.boot:spring-boot-starter-actuator:2.6.15) (*)
     \--- org.springframework.boot:spring-boot-starter-json:2.6.6
          +--- org.springframework.boot:spring-boot-dependencies:2.6.15 (requested org.springframework.boot:spring-boot-starter-json:2.6.15) (*)
          \--- org.springframework.boot:spring-boot-starter-web:2.6.6 (*)

@bmuschko bmuschko added enhancement New feature or request recipe Requested Recipe labels Oct 22, 2025
@github-project-automation github-project-automation bot moved this to In Progress in OpenRewrite Oct 22, 2025
@bmuschko bmuschko marked this pull request as ready for review October 30, 2025 12:48
@timtebeek timtebeek requested a review from sambsnyd October 30, 2025 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request recipe Requested Recipe

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

3 participants