Rationale: many new resolver features are akin to be able to store their configuration and input along SCM tracked Maven project sources. Sadly, currently this is not possible. The two issues targeting Maven4 (
MNG-7038 and MNG-6303) with introduction of session and project "topDirectory" and "rootDirectory" properties solve this. Still, Maven 3.9.x does not need all of this.
So, idea is following:
- extend MavenCli to interpolate Maven arguments
- introduce two special properties session.rootDirectory and session.topDirectory in interpolation. They are special, as they may not be defined, and IF they are not defined, their use in Maven argument interpolation causes error (Maven will not boot).
- limit the use of the two new properties to Maven CLI interpolation only. This makes projects relying on Maven CLI interpolation "permeable" between Maven 3.9.x and Maven 4, while all the whistle and bells (exposing this via session or project) will be available in Maven 4 only.