From 8fbea1833589a0f11deebb5b0d792dcde0061983 Mon Sep 17 00:00:00 2001 From: Jente Sondervorst Date: Mon, 2 Mar 2026 17:35:52 +0100 Subject: [PATCH 1/7] Add retainExplicitVersion option to UpgradeDependencyVersion When set to true, this flag prevents the recipe from removing explicit version tags that match the parent-managed version after an upgrade. This is useful when organizations want to keep version tags in child POMs for clarity or policy reasons. A backward-compatible constructor is preserved alongside the new @JsonCreator constructor that accepts the additional parameter. Fixes moderneinc/customer-requests#1942 --- .../maven/UpgradeDependencyVersion.java | 32 +++- .../maven/UpgradeDependencyVersionTest.java | 181 ++++++++++++++++++ 2 files changed, 212 insertions(+), 1 deletion(-) diff --git a/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java b/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java index 65a8404b7b..068b023afd 100644 --- a/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java +++ b/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java @@ -15,6 +15,7 @@ */ package org.openrewrite.maven; +import com.fasterxml.jackson.annotation.JsonCreator; import lombok.EqualsAndHashCode; import lombok.Value; import org.jspecify.annotations.Nullable; @@ -100,6 +101,33 @@ public class UpgradeDependencyVersion extends ScanningRecipe retainVersions; + @Option(displayName = "Retain explicit version", + description = "When set to `true`, the explicit version in the dependency tag will not be removed even if it " + + "matches the version managed by the parent POM. This is useful when you want to keep the version " + + "tag in the child POM for clarity or policy reasons. Default `false`.", + required = false) + @Nullable + Boolean retainExplicitVersion; + + public UpgradeDependencyVersion(String groupId, String artifactId, String newVersion, + @Nullable String versionPattern, @Nullable Boolean overrideManagedVersion, + @Nullable List retainVersions) { + this(groupId, artifactId, newVersion, versionPattern, overrideManagedVersion, retainVersions, null); + } + + @JsonCreator + public UpgradeDependencyVersion(String groupId, String artifactId, String newVersion, + @Nullable String versionPattern, @Nullable Boolean overrideManagedVersion, + @Nullable List retainVersions, @Nullable Boolean retainExplicitVersion) { + this.groupId = groupId; + this.artifactId = artifactId; + this.newVersion = newVersion; + this.versionPattern = versionPattern; + this.overrideManagedVersion = overrideManagedVersion; + this.retainVersions = retainVersions; + this.retainExplicitVersion = retainExplicitVersion; + } + @SuppressWarnings("ConstantConditions") @Override public Validated validate() { @@ -260,7 +288,9 @@ public Xml.Tag visitTag(Xml.Tag tag, ExecutionContext ctx) { if (t != tag && isProjectTag()) { maybeUpdateModel(); - doAfterVisit(new RemoveRedundantDependencyVersions(groupId, artifactId, null, null).getVisitor()); + if (!Boolean.TRUE.equals(retainExplicitVersion)) { + doAfterVisit(new RemoveRedundantDependencyVersions(groupId, artifactId, null, null).getVisitor()); + } } return t; diff --git a/rewrite-maven/src/test/java/org/openrewrite/maven/UpgradeDependencyVersionTest.java b/rewrite-maven/src/test/java/org/openrewrite/maven/UpgradeDependencyVersionTest.java index 1b625ebfe3..9ebf287556 100644 --- a/rewrite-maven/src/test/java/org/openrewrite/maven/UpgradeDependencyVersionTest.java +++ b/rewrite-maven/src/test/java/org/openrewrite/maven/UpgradeDependencyVersionTest.java @@ -2743,4 +2743,185 @@ void shouldPreserveRevisionPropertyInDependencyVersion() { ) ); } + + @Issue("https://github.com/moderneinc/customer-requests/issues/1942") + @Nested + class RetainExplicitVersion { + @Test + void retainExplicitVersionWhenMatchingManagedVersion() { + rewriteRun( + spec -> spec.recipe(new UpgradeDependencyVersion("com.google.guava", "*", "25-28", "-jre", false, null, true)), + pomXml( + """ + + com.mycompany.app + my-app + 1 + + 25.0-jre + + + + + com.google.guava + guava + ${guava.version} + + + + + """, + """ + + com.mycompany.app + my-app + 1 + + 28.0-jre + + + + + com.google.guava + guava + ${guava.version} + + + + + """ + ), + mavenProject("my-app-server", + pomXml( + """ + + + com.mycompany.app + my-app + 1 + + com.mycompany.app + my-app-server + 1 + + + com.google.guava + guava + 25.0-jre + + + + """, + """ + + + com.mycompany.app + my-app + 1 + + com.mycompany.app + my-app-server + 1 + + + com.google.guava + guava + 28.0-jre + + + + """ + ) + ) + ); + } + + @Test + void defaultBehaviorRemovesRedundantVersion() { + rewriteRun( + spec -> spec.recipe(new UpgradeDependencyVersion("com.google.guava", "*", "25-28", "-jre", false, null)), + pomXml( + """ + + com.mycompany.app + my-app + 1 + + 25.0-jre + + + + + com.google.guava + guava + ${guava.version} + + + + + """, + """ + + com.mycompany.app + my-app + 1 + + 28.0-jre + + + + + com.google.guava + guava + ${guava.version} + + + + + """ + ), + mavenProject("my-app-server", + pomXml( + """ + + + com.mycompany.app + my-app + 1 + + com.mycompany.app + my-app-server + 1 + + + com.google.guava + guava + 25.0-jre + + + + """, + """ + + + com.mycompany.app + my-app + 1 + + com.mycompany.app + my-app-server + 1 + + + com.google.guava + guava + + + + """ + ) + ) + ); + } + } } From ee46e5924c7e1e0fabd53f38b97cbe693e55aed6 Mon Sep 17 00:00:00 2001 From: Jente Sondervorst Date: Mon, 2 Mar 2026 19:06:43 +0100 Subject: [PATCH 2/7] Apply suggestion from @timtebeek Co-authored-by: Tim te Beek --- .../java/org/openrewrite/maven/UpgradeDependencyVersion.java | 1 + 1 file changed, 1 insertion(+) diff --git a/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java b/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java index 068b023afd..1bb27a4554 100644 --- a/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java +++ b/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java @@ -109,6 +109,7 @@ public class UpgradeDependencyVersion extends ScanningRecipe retainVersions) { From afc03d28dee7ac2e26d1e2a20d005e63664958f0 Mon Sep 17 00:00:00 2001 From: Jente Sondervorst Date: Tue, 3 Mar 2026 10:51:35 +0100 Subject: [PATCH 3/7] Revert retainExplicitVersion in favor of marker-based approach Remove the retainExplicitVersion field, constructors, and conditional logic from UpgradeDependencyVersion in favor of a more flexible Skip marker on RemoveRedundantDependencyVersions. --- .../maven/UpgradeDependencyVersion.java | 33 +--- .../maven/UpgradeDependencyVersionTest.java | 181 ------------------ 2 files changed, 1 insertion(+), 213 deletions(-) diff --git a/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java b/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java index 1bb27a4554..65a8404b7b 100644 --- a/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java +++ b/rewrite-maven/src/main/java/org/openrewrite/maven/UpgradeDependencyVersion.java @@ -15,7 +15,6 @@ */ package org.openrewrite.maven; -import com.fasterxml.jackson.annotation.JsonCreator; import lombok.EqualsAndHashCode; import lombok.Value; import org.jspecify.annotations.Nullable; @@ -101,34 +100,6 @@ public class UpgradeDependencyVersion extends ScanningRecipe retainVersions; - @Option(displayName = "Retain explicit version", - description = "When set to `true`, the explicit version in the dependency tag will not be removed even if it " + - "matches the version managed by the parent POM. This is useful when you want to keep the version " + - "tag in the child POM for clarity or policy reasons. Default `false`.", - required = false) - @Nullable - Boolean retainExplicitVersion; - - @Deprecated - public UpgradeDependencyVersion(String groupId, String artifactId, String newVersion, - @Nullable String versionPattern, @Nullable Boolean overrideManagedVersion, - @Nullable List retainVersions) { - this(groupId, artifactId, newVersion, versionPattern, overrideManagedVersion, retainVersions, null); - } - - @JsonCreator - public UpgradeDependencyVersion(String groupId, String artifactId, String newVersion, - @Nullable String versionPattern, @Nullable Boolean overrideManagedVersion, - @Nullable List retainVersions, @Nullable Boolean retainExplicitVersion) { - this.groupId = groupId; - this.artifactId = artifactId; - this.newVersion = newVersion; - this.versionPattern = versionPattern; - this.overrideManagedVersion = overrideManagedVersion; - this.retainVersions = retainVersions; - this.retainExplicitVersion = retainExplicitVersion; - } - @SuppressWarnings("ConstantConditions") @Override public Validated validate() { @@ -289,9 +260,7 @@ public Xml.Tag visitTag(Xml.Tag tag, ExecutionContext ctx) { if (t != tag && isProjectTag()) { maybeUpdateModel(); - if (!Boolean.TRUE.equals(retainExplicitVersion)) { - doAfterVisit(new RemoveRedundantDependencyVersions(groupId, artifactId, null, null).getVisitor()); - } + doAfterVisit(new RemoveRedundantDependencyVersions(groupId, artifactId, null, null).getVisitor()); } return t; diff --git a/rewrite-maven/src/test/java/org/openrewrite/maven/UpgradeDependencyVersionTest.java b/rewrite-maven/src/test/java/org/openrewrite/maven/UpgradeDependencyVersionTest.java index 9ebf287556..1b625ebfe3 100644 --- a/rewrite-maven/src/test/java/org/openrewrite/maven/UpgradeDependencyVersionTest.java +++ b/rewrite-maven/src/test/java/org/openrewrite/maven/UpgradeDependencyVersionTest.java @@ -2743,185 +2743,4 @@ void shouldPreserveRevisionPropertyInDependencyVersion() { ) ); } - - @Issue("https://github.com/moderneinc/customer-requests/issues/1942") - @Nested - class RetainExplicitVersion { - @Test - void retainExplicitVersionWhenMatchingManagedVersion() { - rewriteRun( - spec -> spec.recipe(new UpgradeDependencyVersion("com.google.guava", "*", "25-28", "-jre", false, null, true)), - pomXml( - """ - - com.mycompany.app - my-app - 1 - - 25.0-jre - - - - - com.google.guava - guava - ${guava.version} - - - - - """, - """ - - com.mycompany.app - my-app - 1 - - 28.0-jre - - - - - com.google.guava - guava - ${guava.version} - - - - - """ - ), - mavenProject("my-app-server", - pomXml( - """ - - - com.mycompany.app - my-app - 1 - - com.mycompany.app - my-app-server - 1 - - - com.google.guava - guava - 25.0-jre - - - - """, - """ - - - com.mycompany.app - my-app - 1 - - com.mycompany.app - my-app-server - 1 - - - com.google.guava - guava - 28.0-jre - - - - """ - ) - ) - ); - } - - @Test - void defaultBehaviorRemovesRedundantVersion() { - rewriteRun( - spec -> spec.recipe(new UpgradeDependencyVersion("com.google.guava", "*", "25-28", "-jre", false, null)), - pomXml( - """ - - com.mycompany.app - my-app - 1 - - 25.0-jre - - - - - com.google.guava - guava - ${guava.version} - - - - - """, - """ - - com.mycompany.app - my-app - 1 - - 28.0-jre - - - - - com.google.guava - guava - ${guava.version} - - - - - """ - ), - mavenProject("my-app-server", - pomXml( - """ - - - com.mycompany.app - my-app - 1 - - com.mycompany.app - my-app-server - 1 - - - com.google.guava - guava - 25.0-jre - - - - """, - """ - - - com.mycompany.app - my-app - 1 - - com.mycompany.app - my-app-server - 1 - - - com.google.guava - guava - - - - """ - ) - ) - ); - } - } } From b2bda2ada305ef6688d7a9f7151d3115861aebbb Mon Sep 17 00:00:00 2001 From: Jente Sondervorst Date: Tue, 3 Mar 2026 10:56:53 +0100 Subject: [PATCH 4/7] Add RemoveRedundantDependencyVersions.Skip marker Add a Skip marker that can be placed on a Maven dependency tag to prevent RemoveRedundantDependencyVersions from removing its explicit . This allows other recipes to preserve intentionally set versions by adding the marker before RemoveRedundantDependencyVersions runs. Fixes moderneinc/customer-requests#1942 --- .../RemoveRedundantDependencyVersions.java | 19 +++++ ...RemoveRedundantDependencyVersionsTest.java | 84 +++++++++++++++++++ 2 files changed, 103 insertions(+) diff --git a/rewrite-maven/src/main/java/org/openrewrite/maven/RemoveRedundantDependencyVersions.java b/rewrite-maven/src/main/java/org/openrewrite/maven/RemoveRedundantDependencyVersions.java index 7fc17d1321..5c5ae9ffd0 100644 --- a/rewrite-maven/src/main/java/org/openrewrite/maven/RemoveRedundantDependencyVersions.java +++ b/rewrite-maven/src/main/java/org/openrewrite/maven/RemoveRedundantDependencyVersions.java @@ -18,8 +18,10 @@ import com.fasterxml.jackson.annotation.JsonCreator; import lombok.EqualsAndHashCode; import lombok.Value; +import lombok.With; import org.jspecify.annotations.Nullable; import org.openrewrite.*; +import org.openrewrite.marker.Marker; import org.openrewrite.internal.ListUtils; import org.openrewrite.internal.StringUtils; import org.openrewrite.maven.internal.MavenPomDownloader; @@ -172,6 +174,9 @@ public Xml.Document visitDocument(Xml.Document document, ExecutionContext ctx) { @Override public Xml.@Nullable Tag visitTag(Xml.Tag tag, ExecutionContext ctx) { if (isDependencyTag()) { + if (tag.getMarkers().findFirst(Skip.class).isPresent()) { + return tag; + } ResolvedDependency d = findDependency(tag); if (d != null && matchesGroup(d) && @@ -182,6 +187,9 @@ public Xml.Document visitDocument(Xml.Document document, ExecutionContext ctx) { return tag.withContent(withoutVersion(tag, version)); } } else if (isManagedDependencyTag()) { + if (tag.getMarkers().findFirst(Skip.class).isPresent()) { + return tag; + } ResolvedManagedDependency managed = findManagedDependency(tag); if (managed != null && matchesGroup(managed) && @@ -409,4 +417,15 @@ private static class RemoveEmptyPluginsTags extends MavenIsoVisitor} should be retained, even when this recipe would otherwise remove it + * as redundant. + */ + @Value + @With + public static class Skip implements Marker { + UUID id; + } } diff --git a/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java b/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java index f74aca3f21..549ccff137 100644 --- a/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java +++ b/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java @@ -15,18 +15,22 @@ */ package org.openrewrite.maven; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; import org.openrewrite.DocumentExample; import org.openrewrite.Issue; +import org.openrewrite.Tree; import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; import org.openrewrite.test.SourceSpec; +import org.openrewrite.xml.tree.Xml; import static java.util.Collections.singletonList; import static org.openrewrite.java.Assertions.mavenProject; import static org.openrewrite.maven.Assertions.pomXml; +import static org.openrewrite.test.RewriteTest.toRecipe; class RemoveRedundantDependencyVersionsTest implements RewriteTest { @@ -2282,4 +2286,84 @@ void exceptManagedDependencyShouldNotBeRemoved() { ) ); } + + @Issue("https://github.com/moderneinc/customer-requests/issues/1942") + @Nested + class SkipMarker { + private static final String GUAVA_POM = """ + + com.mycompany.app + my-app + 1 + + + + com.google.guava + guava + 29.0-jre + + + + + + com.google.guava + guava + 29.0-jre + + + + """; + + @Test + void dependencyWithSkipMarkerKeepsVersion() { + rewriteRun( + spec -> spec.expectedCyclesThatMakeChanges(1).recipe(toRecipe(() -> new MavenIsoVisitor<>() { + @Override + public Xml.Tag visitTag(Xml.Tag tag, org.openrewrite.ExecutionContext ctx) { + Xml.Tag t = super.visitTag(tag, ctx); + if (isDependencyTag("com.google.guava", "guava") && + !t.getMarkers().findFirst(RemoveRedundantDependencyVersions.Skip.class).isPresent()) { + t = t.withMarkers(t.getMarkers().add(new RemoveRedundantDependencyVersions.Skip(Tree.randomId()))); + } + if (isProjectTag()) { + doAfterVisit(new RemoveRedundantDependencyVersions(null, null, null, null).getVisitor()); + } + return t; + } + })), + pomXml(GUAVA_POM, GUAVA_POM) + ); + } + + @Test + void dependencyWithoutSkipMarkerHasVersionRemoved() { + rewriteRun( + pomXml( + GUAVA_POM, + """ + + com.mycompany.app + my-app + 1 + + + + com.google.guava + guava + 29.0-jre + + + + + + com.google.guava + guava + + + + """ + ) + ); + } + } } From b6541ce604a7a3e06b0c884bbed34d3581232f4d Mon Sep 17 00:00:00 2001 From: Jente Sondervorst Date: Tue, 3 Mar 2026 11:00:05 +0100 Subject: [PATCH 5/7] Improve Skip marker tests Remove unnecessary expectedCyclesThatMakeChanges and add mixed-state test that verifies the Skip marker only affects the marked dependency while unmarked dependencies still have their redundant versions removed. --- ...RemoveRedundantDependencyVersionsTest.java | 153 +++++++++++++++--- 1 file changed, 131 insertions(+), 22 deletions(-) diff --git a/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java b/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java index 549ccff137..ca8349aa7e 100644 --- a/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java +++ b/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java @@ -2290,12 +2290,23 @@ void exceptManagedDependencyShouldNotBeRemoved() { @Issue("https://github.com/moderneinc/customer-requests/issues/1942") @Nested class SkipMarker { - private static final String GUAVA_POM = """ - - com.mycompany.app - my-app - 1 - + + @Test + void dependencyWithSkipMarkerKeepsVersion() { + String pom = """ + + com.mycompany.app + my-app + 1 + + + + com.google.guava + guava + 29.0-jre + + + com.google.guava @@ -2303,21 +2314,10 @@ class SkipMarker { 29.0-jre - - - - com.google.guava - guava - 29.0-jre - - - - """; - - @Test - void dependencyWithSkipMarkerKeepsVersion() { + + """; rewriteRun( - spec -> spec.expectedCyclesThatMakeChanges(1).recipe(toRecipe(() -> new MavenIsoVisitor<>() { + spec -> spec.recipe(toRecipe(() -> new MavenIsoVisitor<>() { @Override public Xml.Tag visitTag(Xml.Tag tag, org.openrewrite.ExecutionContext ctx) { Xml.Tag t = super.visitTag(tag, ctx); @@ -2331,7 +2331,7 @@ public Xml.Tag visitTag(Xml.Tag tag, org.openrewrite.ExecutionContext ctx) { return t; } })), - pomXml(GUAVA_POM, GUAVA_POM) + pomXml(pom, pom) ); } @@ -2339,7 +2339,6 @@ public Xml.Tag visitTag(Xml.Tag tag, org.openrewrite.ExecutionContext ctx) { void dependencyWithoutSkipMarkerHasVersionRemoved() { rewriteRun( pomXml( - GUAVA_POM, """ com.mycompany.app @@ -2358,6 +2357,116 @@ void dependencyWithoutSkipMarkerHasVersionRemoved() { com.google.guava guava + 29.0-jre + + + + """, + """ + + com.mycompany.app + my-app + 1 + + + + com.google.guava + guava + 29.0-jre + + + + + + com.google.guava + guava + + + + """ + ) + ); + } + + @Test + void skipMarkerOnlyAffectsMarkedDependency() { + rewriteRun( + spec -> spec.recipe(toRecipe(() -> new MavenIsoVisitor<>() { + @Override + public Xml.Tag visitTag(Xml.Tag tag, org.openrewrite.ExecutionContext ctx) { + Xml.Tag t = super.visitTag(tag, ctx); + if (isDependencyTag("com.google.guava", "guava") && + !t.getMarkers().findFirst(RemoveRedundantDependencyVersions.Skip.class).isPresent()) { + t = t.withMarkers(t.getMarkers().add(new RemoveRedundantDependencyVersions.Skip(Tree.randomId()))); + } + if (isProjectTag()) { + doAfterVisit(new RemoveRedundantDependencyVersions(null, null, null, null).getVisitor()); + } + return t; + } + })), + pomXml( + """ + + com.mycompany.app + my-app + 1 + + + + com.google.guava + guava + 29.0-jre + + + commons-io + commons-io + 2.11.0 + + + + + + com.google.guava + guava + 29.0-jre + + + commons-io + commons-io + 2.11.0 + + + + """, + """ + + com.mycompany.app + my-app + 1 + + + + com.google.guava + guava + 29.0-jre + + + commons-io + commons-io + 2.11.0 + + + + + + com.google.guava + guava + 29.0-jre + + + commons-io + commons-io From 6e3a02041a2f237d7c8e96e4f8338ae9ed5b41f0 Mon Sep 17 00:00:00 2001 From: Jente Sondervorst Date: Tue, 3 Mar 2026 11:00:36 +0100 Subject: [PATCH 6/7] Remove customer-requests @Issue annotation from SkipMarker tests --- .../openrewrite/maven/RemoveRedundantDependencyVersionsTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java b/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java index ca8349aa7e..4b79692256 100644 --- a/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java +++ b/rewrite-maven/src/test/java/org/openrewrite/maven/RemoveRedundantDependencyVersionsTest.java @@ -2287,7 +2287,6 @@ void exceptManagedDependencyShouldNotBeRemoved() { ); } - @Issue("https://github.com/moderneinc/customer-requests/issues/1942") @Nested class SkipMarker { From a4a176d11da1488ffbf073fb8b652bbb0ad45c70 Mon Sep 17 00:00:00 2001 From: Jente Sondervorst Date: Tue, 3 Mar 2026 11:03:57 +0100 Subject: [PATCH 7/7] Remove unnecessary Skip marker check from managed dependency branch --- .../openrewrite/maven/RemoveRedundantDependencyVersions.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/rewrite-maven/src/main/java/org/openrewrite/maven/RemoveRedundantDependencyVersions.java b/rewrite-maven/src/main/java/org/openrewrite/maven/RemoveRedundantDependencyVersions.java index 5c5ae9ffd0..628b6272d8 100644 --- a/rewrite-maven/src/main/java/org/openrewrite/maven/RemoveRedundantDependencyVersions.java +++ b/rewrite-maven/src/main/java/org/openrewrite/maven/RemoveRedundantDependencyVersions.java @@ -187,9 +187,6 @@ public Xml.Document visitDocument(Xml.Document document, ExecutionContext ctx) { return tag.withContent(withoutVersion(tag, version)); } } else if (isManagedDependencyTag()) { - if (tag.getMarkers().findFirst(Skip.class).isPresent()) { - return tag; - } ResolvedManagedDependency managed = findManagedDependency(tag); if (managed != null && matchesGroup(managed) &&