gnodet opened a new pull request, #12106:
URL: https://github.com/apache/maven/pull/12106
## Summary
Backport of #12105 to maven-4.0.x.
- Fix `CompatibilityFixStrategy.fixRepositoryExpressions()` to replace
deprecated `${basedir}` and `${pom.basedir}` with the canonical
`${project.basedir}` form in repository and pluginRepository URL elements
(including inside profiles)
- Previously the method only logged a warning but never performed the
replacement
- Add 5 tests covering repositories, pluginRepositories, profiles, and the
no-op case
## Context
Maven 4 introduced `MavenValidator`
([MNG-8677](https://issues.apache.org/jira/browse/MNG-8677), [PR
#2158](https://github.com/apache/maven/pull/2158)) which validates that
repository URLs are fully interpolated. When a POM uses `${basedir}` in a
repository URL (e.g. `file://${basedir}/internal-repository`), this can fail
validation since `${basedir}` is a deprecated form that may not be interpolated
in all contexts (notably during transitive dependency resolution).
The `pom.` prefix was deprecated in favor of `project.`
([MNG-7244](https://issues.apache.org/jira/browse/MNG-7244)), and prefixless
expressions were dropped
([MNG-7404](https://issues.apache.org/jira/browse/MNG-7404)).
See: https://github.com/gnodet/maven4-testing/issues/13299
## Test plan
- [x] All existing `CompatibilityFixStrategyTest` tests pass
- [x] New tests verify `${basedir}` → `${project.basedir}` replacement in
repository, pluginRepository, and profile repository URLs
- [x] New test verifies no modification when URLs already use
`${project.basedir}` or contain no expressions
_Claude Code on behalf of Guillaume Nodet_
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]