[maven-4.0.x] Fix resource targetPath resolution to be relative to output directory (fixes #11381) (#11394)#11406
Merged
gnodet merged 1 commit intoapache:maven-4.0.xfrom Nov 7, 2025
Conversation
…fixes apache#11381) (apache#11394) This commit fixes the regression where resources with a relative targetPath were being copied to the project root instead of relative to the output directory (target/classes or target/test-classes). Changes: 1. DefaultSourceRoot.fromModel: Store targetPath as a relative path instead of resolving it against baseDir and outputDir. This ensures that SourceRoot.targetPath() returns a relative path as intended by the Maven 4 API javadoc. 2. ConnectedResource.computeRelativeTargetPath: Simplified to directly return the relative targetPath from SourceRoot, since it's now always stored as relative. 3. Updated tests to expect relative paths from SourceRoot.targetPath(). Maven 4 API Conformance: - SourceRoot.targetPath() returns an Optional<Path> containing the explicit target path, which should be relative to the output directory (or absolute if explicitly specified as absolute). - SourceRoot.targetPath(Project) resolves this relative path against the project's output directory to produce an absolute path. Maven 3 Compatibility: - Resource.getTargetPath() in Maven 3 was always relative to the output directory. This behavior is preserved by storing targetPath as relative in SourceRoot and converting it back to relative for the Resource API via ConnectedResource. Example: With <targetPath>custom-dir</targetPath>: - Maven 3: Resources copied to target/classes/custom-dir - Maven 4 (before fix): Resources copied to project-root/custom-dir - Maven 4 (after fix): Resources copied to target/classes/custom-dir Fixes apache#11381 (cherry picked from commit 9b95526)
f6c0427 to
18ac79f
Compare
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.
Backport
This will backport the following commits from
mastertomaven-4.0.x:Questions ?
Please refer to the Backport tool documentation