Skip to content

RemoveDuplicateDependencies Removes Dependency with Classifier, Breaking Maven Build #4868

Open
@torsten-liermann

Description

What version of OpenRewrite are you using?

8.42.4

I am using

  • OpenRewrite v8.42.4
  • Maven/Gradle plugin v5.47.3
  • rewrite-module v2.31.0

How are you running OpenRewrite?

mvnw org.openrewrite.maven:rewrite-maven-plugin:5.47.3:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:LATEST -Drewrite.activeRecipes=org.openrewrite.maven.RemoveDuplicateDependencies

The issue can be reproduced: https://github.com/torsten-liermann/orw-problem-removeduplicatesdependencies

RemoveDuplicateDependencies mistakenly removes a dependency from the dependency management. The peculiarity of this dependency is that it appears twice in the dependency management: once with a classifier and once without a classifier. Depending on the order of these two dependencies, one of them gets removed, resulting in a non-functional build. The demo contains the setup that triggers this error.

         <dependencyManagement>
              <dependencies>
                <dependency>
                        <groupId>com.adobe.aio.cloudmanager</groupId>
                        <artifactId>aio-lib-cloudmanager</artifactId>
                        <classifier>java8</classifier>
                        <version>2.0.0</version>
                </dependency>
                <dependency>
                        <groupId>com.adobe.aio.cloudmanager</groupId>
                        <artifactId>aio-lib-cloudmanager</artifactId>
                        <version>2.0.0</version>
                </dependency>
            </dependencies>
        </dependencyManagement>

Reordering the dependencies resolves the issue.

        <dependencyManagement>
              <dependencies>
                <dependency>
                        <groupId>com.adobe.aio.cloudmanager</groupId>
                        <artifactId>aio-lib-cloudmanager</artifactId>
                        <version>2.0.0</version>
                </dependency>
                <dependency>
                        <groupId>com.adobe.aio.cloudmanager</groupId>
                        <artifactId>aio-lib-cloudmanager</artifactId>
                        <classifier>java8</classifier>
                        <version>2.0.0</version>
                </dependency>
            </dependencies>
        </dependencyManagement>

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    • Status

      No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions