Fix mvnup effective model analysis for CI-friendly parent versions#12205
Open
gnodet wants to merge 1 commit into
Open
Fix mvnup effective model analysis for CI-friendly parent versions#12205gnodet wants to merge 1 commit into
gnodet wants to merge 1 commit into
Conversation
mvnup's PluginUpgradeStrategy copied POMs to a temp directory for
effective model analysis. That temp directory lacked .mvn, so root
detection failed for child modules with ${revision} parent versions,
producing "Parent POM is located above the root directory" errors.
Eliminate the temp directory entirely — build effective models from
the original file paths, which already have proper .mvn and project
structure for root detection.
Also fix DefaultModelBuilder.doReadFileModel() to:
- Enter the parent resolution block when parent version contains
expressions (${revision}, etc.)
- Only enforce isParentWithinRootDirectory when rootDirectory came
from the session, not the fallback heuristic
- Accept parent version match when version contains an expression
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
gnodet
added a commit
that referenced
this pull request
Jun 2, 2026
…#12205) Cherry-pick from fix/revision-parent-version branch. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
rmannibucau
approved these changes
Jun 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PluginUpgradeStrategy— build effective models from original file paths instead of copying POMs to a temp directory that lacked.mvnfor root detectionDefaultModelBuilder.doReadFileModel()to handle${revision}parent versions: enter parent resolution block for expression versions, skipisParentWithinRootDirectorywhen root directory is a fallback guess, and accept parent version match when version contains an expressionPluginUpgradeStrategyTestFixes the "Parent POM is located above the root directory" error that occurred in
mvnup applyfor all CI-friendly projects using${revision}(bigtop-manager, guacamole-client, hbase-connectors, logging-log4j-samples).Test plan
DefaultModelBuilderTest— 7 tests pass (including newtestCiFriendlyVersion)PluginUpgradeStrategyTest— 27 tests pass (including fixedshouldDetectInheritedPluginsFromRemoteParent)MavenITgh12184CIFriendlyParentVersionTest— 2 ITs pass (property from POM, property from CLI)MavenITgh11196CIFriendlyProfilesTest,MavenITmng8744CIFriendlyTest)mvnup applyon all 4 affected projects produces no "parent above root" errors🤖 Generated with Claude Code