This is an automated email from the ASF dual-hosted git repository.

cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/master by this push:
     new efae0a41f3 [MNG-8586] Expose Maven version segments as properties 
(#2116)
efae0a41f3 is described below

commit efae0a41f3942ff52d349fd05f2397a376fce230
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Fri Feb 21 23:18:14 2025 +0100

    [MNG-8586] Expose Maven version segments as properties (#2116)
    
    Expose version segments. Also add the properties to generated doco.
    
    ---
    
    https://issues.apache.org/jira/browse/MNG-8586
---
 .../org/apache/maven/api/annotations/Config.java   |  13 +
 .../main/java/org/apache/maven/api/Constants.java  |  50 ++-
 .../org/apache/maven/cling/invoker/BaseParser.java |  20 +-
 src/site/markdown/configuration.properties         | 414 +++++++++++----------
 src/site/markdown/configuration.yaml               |  38 +-
 src/site/markdown/maven-configuration.md           |   8 +-
 6 files changed, 349 insertions(+), 194 deletions(-)

diff --git 
a/api/maven-api-annotations/src/main/java/org/apache/maven/api/annotations/Config.java
 
b/api/maven-api-annotations/src/main/java/org/apache/maven/api/annotations/Config.java
index 5b3703d643..08254a59b6 100644
--- 
a/api/maven-api-annotations/src/main/java/org/apache/maven/api/annotations/Config.java
+++ 
b/api/maven-api-annotations/src/main/java/org/apache/maven/api/annotations/Config.java
@@ -38,8 +38,21 @@
 
     boolean readOnly() default false;
 
+    /**
+     * Property source.
+     */
     enum Source {
+        /**
+         * Maven system properties.
+         */
+        SYSTEM_PROPERTIES,
+        /**
+         * Maven user properties.
+         */
         USER_PROPERTIES,
+        /**
+         * Project properties.
+         */
         MODEL
     }
 }
diff --git 
a/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java 
b/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
index 76575ef131..d18f0aa357 100644
--- a/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
+++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Constants.java
@@ -30,9 +30,57 @@ public final class Constants {
      *
      * @since 3.0.0
      */
-    @Config(readOnly = true)
+    @Config(readOnly = true, source = Config.Source.SYSTEM_PROPERTIES)
     public static final String MAVEN_HOME = "maven.home";
 
+    /**
+     * Maven version.
+     *
+     * @since 3.0.0
+     */
+    @Config(readOnly = true, source = Config.Source.SYSTEM_PROPERTIES)
+    public static final String MAVEN_VERSION = "maven.version";
+
+    /**
+     * Maven major version: contains the major segment of this Maven version.
+     *
+     * @since 4.0.0
+     */
+    @Config(readOnly = true, source = Config.Source.SYSTEM_PROPERTIES)
+    public static final String MAVEN_VERSION_MAJOR = "maven.version.major";
+
+    /**
+     * Maven minor version: contains the minor segment of this Maven version.
+     *
+     * @since 4.0.0
+     */
+    @Config(readOnly = true, source = Config.Source.SYSTEM_PROPERTIES)
+    public static final String MAVEN_VERSION_MINOR = "maven.version.minor";
+
+    /**
+     * Maven patch version: contains the patch segment of this Maven version.
+     *
+     * @since 4.0.0
+     */
+    @Config(readOnly = true, source = Config.Source.SYSTEM_PROPERTIES)
+    public static final String MAVEN_VERSION_PATCH = "maven.version.patch";
+
+    /**
+     * Maven snapshot: contains "true" if this Maven is a snapshot version.
+     *
+     * @since 4.0.0
+     */
+    @Config(readOnly = true, source = Config.Source.SYSTEM_PROPERTIES)
+    public static final String MAVEN_VERSION_SNAPSHOT = 
"maven.version.snapshot";
+
+    /**
+     * Maven build version: a human-readable string containing this Maven 
version, buildnumber, and time of its build.
+     *
+     * @since 3.0.0
+     */
+    @Config(readOnly = true, source = Config.Source.SYSTEM_PROPERTIES)
+    public static final String MAVEN_BUILD_VERSION = "maven.build.version";
+
     /**
      * Maven installation configuration directory.
      *
diff --git 
a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java 
b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java
index a74abe626c..7c2737be98 100644
--- 
a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java
+++ 
b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java
@@ -350,10 +350,26 @@ protected Map<String, String> 
populateSystemProperties(LocalContext context) {
         Properties buildProperties = CLIReportingUtils.getBuildProperties();
 
         String mavenVersion = 
buildProperties.getProperty(CLIReportingUtils.BUILD_VERSION_PROPERTY);
-        systemProperties.setProperty("maven.version", mavenVersion);
+        systemProperties.setProperty(Constants.MAVEN_VERSION, mavenVersion);
+
+        boolean snapshot = mavenVersion.endsWith("SNAPSHOT");
+        if (snapshot) {
+            mavenVersion = mavenVersion.substring(0, mavenVersion.length() - 
"SNAPSHOT".length());
+            if (mavenVersion.endsWith("-")) {
+                mavenVersion = mavenVersion.substring(0, mavenVersion.length() 
- 1);
+            }
+        }
+        String[] versionElements = mavenVersion.split("\\.");
+        if (versionElements.length != 3) {
+            throw new IllegalStateException("Maven version is expected to have 
3 segments: '" + mavenVersion + "'");
+        }
+        systemProperties.setProperty(Constants.MAVEN_VERSION_MAJOR, 
versionElements[0]);
+        systemProperties.setProperty(Constants.MAVEN_VERSION_MINOR, 
versionElements[1]);
+        systemProperties.setProperty(Constants.MAVEN_VERSION_PATCH, 
versionElements[2]);
+        systemProperties.setProperty(Constants.MAVEN_VERSION_SNAPSHOT, 
Boolean.toString(snapshot));
 
         String mavenBuildVersion = 
CLIReportingUtils.createMavenVersionString(buildProperties);
-        systemProperties.setProperty("maven.build.version", mavenBuildVersion);
+        systemProperties.setProperty(Constants.MAVEN_BUILD_VERSION, 
mavenBuildVersion);
 
         Map<String, String> result = toMap(systemProperties);
         result.putAll(context.systemPropertiesOverrides);
diff --git a/src/site/markdown/configuration.properties 
b/src/site/markdown/configuration.properties
index 0031cac310..16a6218ecf 100644
--- a/src/site/markdown/configuration.properties
+++ b/src/site/markdown/configuration.properties
@@ -16,338 +16,374 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-props.count = 56
+props.count = 62
 props.1.key = maven.build.timestamp.format
 props.1.configurationType = String
 props.1.description = Build timestamp format.
 props.1.defaultValue = yyyy-MM-dd'T'HH:mm:ssXXX
 props.1.since = 3.0.0
 props.1.configurationSource = Model properties
-props.2.key = maven.builder.maxProblems
-props.2.configurationType = Integer
-props.2.description = Max number of problems for each severity level retained 
by the model builder.
-props.2.defaultValue = 100
-props.2.since = 4.0.0
-props.2.configurationSource = User properties
-props.3.key = maven.consumer.pom
-props.3.configurationType = Boolean
-props.3.description = User property for enabling/disabling the consumer POM 
feature.
-props.3.defaultValue = true
+props.2.key = maven.build.version
+props.2.configurationType = String
+props.2.description = Maven build version: a human-readable string containing 
this Maven version, buildnumber, and time of its build.
+props.2.defaultValue = 
+props.2.since = 3.0.0
+props.2.configurationSource = system_properties
+props.3.key = maven.builder.maxProblems
+props.3.configurationType = Integer
+props.3.description = Max number of problems for each severity level retained 
by the model builder.
+props.3.defaultValue = 100
 props.3.since = 4.0.0
 props.3.configurationSource = User properties
-props.4.key = maven.deploy.snapshot.buildNumber
-props.4.configurationType = Integer
-props.4.description = User property for overriding calculated "build number" 
for snapshot deploys. Caution: this property should be RARELY used (if used at 
all). It may help in special cases like "aligning" a reactor build subprojects 
build numbers to perform a "snapshot lock down". Value given here must be 
<code>maxRemoteBuildNumber + 1</code> or greater, otherwise build will fail. 
How the number to be obtained is left to user (ie by inspecting snapshot 
repository metadata or alike). No [...]
-props.4.defaultValue = 
+props.4.key = maven.consumer.pom
+props.4.configurationType = Boolean
+props.4.description = User property for enabling/disabling the consumer POM 
feature.
+props.4.defaultValue = true
 props.4.since = 4.0.0
 props.4.configurationSource = User properties
-props.5.key = maven.ext.class.path
-props.5.configurationType = String
-props.5.description = Extensions class path.
+props.5.key = maven.deploy.snapshot.buildNumber
+props.5.configurationType = Integer
+props.5.description = User property for overriding calculated "build number" 
for snapshot deploys. Caution: this property should be RARELY used (if used at 
all). It may help in special cases like "aligning" a reactor build subprojects 
build numbers to perform a "snapshot lock down". Value given here must be 
<code>maxRemoteBuildNumber + 1</code> or greater, otherwise build will fail. 
How the number to be obtained is left to user (ie by inspecting snapshot 
repository metadata or alike). No [...]
 props.5.defaultValue = 
+props.5.since = 4.0.0
 props.5.configurationSource = User properties
-props.6.key = maven.home
+props.6.key = maven.ext.class.path
 props.6.configurationType = String
-props.6.description = Maven home.
+props.6.description = Extensions class path.
 props.6.defaultValue = 
-props.6.since = 3.0.0
 props.6.configurationSource = User properties
-props.7.key = maven.installation.conf
+props.7.key = maven.home
 props.7.configurationType = String
-props.7.description = Maven installation configuration directory.
-props.7.defaultValue = ${maven.home}/conf
-props.7.since = 4.0.0
-props.7.configurationSource = User properties
-props.8.key = maven.installation.extensions
+props.7.description = Maven home.
+props.7.defaultValue = 
+props.7.since = 3.0.0
+props.7.configurationSource = system_properties
+props.8.key = maven.installation.conf
 props.8.configurationType = String
-props.8.description = Maven installation extensions.
-props.8.defaultValue = ${maven.installation.conf}/extensions.xml
+props.8.description = Maven installation configuration directory.
+props.8.defaultValue = ${maven.home}/conf
 props.8.since = 4.0.0
 props.8.configurationSource = User properties
-props.9.key = maven.installation.settings
+props.9.key = maven.installation.extensions
 props.9.configurationType = String
-props.9.description = Maven installation settings.
-props.9.defaultValue = ${maven.installation.conf}/settings.xml
+props.9.description = Maven installation extensions.
+props.9.defaultValue = ${maven.installation.conf}/extensions.xml
 props.9.since = 4.0.0
 props.9.configurationSource = User properties
-props.10.key = maven.installation.toolchains
+props.10.key = maven.installation.settings
 props.10.configurationType = String
-props.10.description = Maven installation toolchains.
-props.10.defaultValue = ${maven.installation.conf}/toolchains.xml
+props.10.description = Maven installation settings.
+props.10.defaultValue = ${maven.installation.conf}/settings.xml
 props.10.since = 4.0.0
 props.10.configurationSource = User properties
-props.11.key = maven.logger.cacheOutputStream
-props.11.configurationType = Boolean
-props.11.description = If the output target is set to "System.out" or 
"System.err" (see preceding entry), by default, logs will be output to the 
latest value referenced by System.out/err variables. By setting this parameter 
to true, the output stream will be cached, i.e. assigned once at initialization 
time and re-used independently of the current value referenced by 
System.out/err.
-props.11.defaultValue = false
+props.11.key = maven.installation.toolchains
+props.11.configurationType = String
+props.11.description = Maven installation toolchains.
+props.11.defaultValue = ${maven.installation.conf}/toolchains.xml
 props.11.since = 4.0.0
 props.11.configurationSource = User properties
-props.12.key = maven.logger.dateTimeFormat
-props.12.configurationType = String
-props.12.description = The date and time format to be used in the output 
messages. The pattern describing the date and time format is defined by 
SimpleDateFormat. If the format is not specified or is invalid, the number of 
milliseconds since start up will be output.
-props.12.defaultValue = 
+props.12.key = maven.logger.cacheOutputStream
+props.12.configurationType = Boolean
+props.12.description = If the output target is set to "System.out" or 
"System.err" (see preceding entry), by default, logs will be output to the 
latest value referenced by System.out/err variables. By setting this parameter 
to true, the output stream will be cached, i.e. assigned once at initialization 
time and re-used independently of the current value referenced by 
System.out/err.
+props.12.defaultValue = false
 props.12.since = 4.0.0
 props.12.configurationSource = User properties
-props.13.key = maven.logger.defaultLogLevel
+props.13.key = maven.logger.dateTimeFormat
 props.13.configurationType = String
-props.13.description = Default log level for all instances of SimpleLogger. 
Must be one of ("trace", "debug", "info", "warn", "error" or "off"). If not 
specified, defaults to "info".
+props.13.description = The date and time format to be used in the output 
messages. The pattern describing the date and time format is defined by 
SimpleDateFormat. If the format is not specified or is invalid, the number of 
milliseconds since start up will be output.
 props.13.defaultValue = 
 props.13.since = 4.0.0
 props.13.configurationSource = User properties
-props.14.key = maven.logger.levelInBrackets
-props.14.configurationType = Boolean
-props.14.description = Should the level string be output in brackets? Defaults 
to false.
-props.14.defaultValue = false
+props.14.key = maven.logger.defaultLogLevel
+props.14.configurationType = String
+props.14.description = Default log level for all instances of SimpleLogger. 
Must be one of ("trace", "debug", "info", "warn", "error" or "off"). If not 
specified, defaults to "info".
+props.14.defaultValue = 
 props.14.since = 4.0.0
 props.14.configurationSource = User properties
-props.15.key = maven.logger.logFile
-props.15.configurationType = String
-props.15.description = The output target which can be the path to a file, or 
the special values "System.out" and "System.err". Default is "System.err".
-props.15.defaultValue = 
+props.15.key = maven.logger.levelInBrackets
+props.15.configurationType = Boolean
+props.15.description = Should the level string be output in brackets? Defaults 
to false.
+props.15.defaultValue = false
 props.15.since = 4.0.0
 props.15.configurationSource = User properties
-props.16.key = maven.logger.showDateTime
-props.16.configurationType = Boolean
-props.16.description = Set to true if you want the current date and time to be 
included in output messages. Default is false.
-props.16.defaultValue = false
+props.16.key = maven.logger.logFile
+props.16.configurationType = String
+props.16.description = The output target which can be the path to a file, or 
the special values "System.out" and "System.err". Default is "System.err".
+props.16.defaultValue = 
 props.16.since = 4.0.0
 props.16.configurationSource = User properties
-props.17.key = maven.logger.showLogName
+props.17.key = maven.logger.showDateTime
 props.17.configurationType = Boolean
-props.17.description = Set to true if you want the Logger instance name to be 
included in output messages. Defaults to true.
-props.17.defaultValue = true
+props.17.description = Set to true if you want the current date and time to be 
included in output messages. Default is false.
+props.17.defaultValue = false
 props.17.since = 4.0.0
 props.17.configurationSource = User properties
-props.18.key = maven.logger.showShortLogName
+props.18.key = maven.logger.showLogName
 props.18.configurationType = Boolean
-props.18.description = Set to true if you want the last component of the name 
to be included in output messages. Defaults to false.
-props.18.defaultValue = false
+props.18.description = Set to true if you want the Logger instance name to be 
included in output messages. Defaults to true.
+props.18.defaultValue = true
 props.18.since = 4.0.0
 props.18.configurationSource = User properties
-props.19.key = maven.logger.showThreadId
+props.19.key = maven.logger.showShortLogName
 props.19.configurationType = Boolean
-props.19.description = If you would like to output the current thread id, then 
set to true. Defaults to false.
+props.19.description = Set to true if you want the last component of the name 
to be included in output messages. Defaults to false.
 props.19.defaultValue = false
 props.19.since = 4.0.0
 props.19.configurationSource = User properties
-props.20.key = maven.logger.showThreadName
+props.20.key = maven.logger.showThreadId
 props.20.configurationType = Boolean
-props.20.description = Set to true if you want to output the current thread 
name. Defaults to true.
-props.20.defaultValue = true
+props.20.description = If you would like to output the current thread id, then 
set to true. Defaults to false.
+props.20.defaultValue = false
 props.20.since = 4.0.0
 props.20.configurationSource = User properties
-props.21.key = maven.logger.warnLevelString
-props.21.configurationType = String
-props.21.description = The string value output for the warn level. Defaults to 
WARN.
-props.21.defaultValue = WARN
+props.21.key = maven.logger.showThreadName
+props.21.configurationType = Boolean
+props.21.description = Set to true if you want to output the current thread 
name. Defaults to true.
+props.21.defaultValue = true
 props.21.since = 4.0.0
 props.21.configurationSource = User properties
-props.22.key = maven.modelBuilder.parallelism
-props.22.configurationType = Integer
-props.22.description = ProjectBuilder parallelism.
-props.22.defaultValue = cores/2 + 1
+props.22.key = maven.logger.warnLevelString
+props.22.configurationType = String
+props.22.description = The string value output for the warn level. Defaults to 
WARN.
+props.22.defaultValue = WARN
 props.22.since = 4.0.0
 props.22.configurationSource = User properties
-props.23.key = maven.plugin.validation
-props.23.configurationType = String
-props.23.description = Plugin validation level.
-props.23.defaultValue = inline
-props.23.since = 3.9.2
+props.23.key = maven.modelBuilder.parallelism
+props.23.configurationType = Integer
+props.23.description = ProjectBuilder parallelism.
+props.23.defaultValue = cores/2 + 1
+props.23.since = 4.0.0
 props.23.configurationSource = User properties
-props.24.key = maven.plugin.validation.excludes
+props.24.key = maven.plugin.validation
 props.24.configurationType = String
-props.24.description = Plugin validation exclusions.
-props.24.defaultValue = 
-props.24.since = 3.9.6
+props.24.description = Plugin validation level.
+props.24.defaultValue = inline
+props.24.since = 3.9.2
 props.24.configurationSource = User properties
-props.25.key = maven.project.conf
+props.25.key = maven.plugin.validation.excludes
 props.25.configurationType = String
-props.25.description = Maven project configuration directory.
-props.25.defaultValue = ${session.rootDirectory}/.mvn
-props.25.since = 4.0.0
+props.25.description = Plugin validation exclusions.
+props.25.defaultValue = 
+props.25.since = 3.9.6
 props.25.configurationSource = User properties
-props.26.key = maven.project.extensions
+props.26.key = maven.project.conf
 props.26.configurationType = String
-props.26.description = Maven project extensions.
-props.26.defaultValue = ${maven.project.conf}/extensions.xml
+props.26.description = Maven project configuration directory.
+props.26.defaultValue = ${session.rootDirectory}/.mvn
 props.26.since = 4.0.0
 props.26.configurationSource = User properties
-props.27.key = maven.project.settings
+props.27.key = maven.project.extensions
 props.27.configurationType = String
-props.27.description = Maven project settings.
-props.27.defaultValue = ${maven.project.conf}/settings.xml
+props.27.description = Maven project extensions.
+props.27.defaultValue = ${maven.project.conf}/extensions.xml
 props.27.since = 4.0.0
 props.27.configurationSource = User properties
-props.28.key = maven.relocations.entries
+props.28.key = maven.project.settings
 props.28.configurationType = String
-props.28.description = User controlled relocations. This property is a comma 
separated list of entries with the syntax <code>GAV&gt;GAV</code>. The first 
<code>GAV</code> can contain <code>\*</code> for any elem (so 
<code>\*:\*:\*</code> would mean ALL, something you don't want). The second 
<code>GAV</code> is either fully specified, or also can contain 
<code>\*</code>, then it behaves as "ordinary relocation": the coordinate is 
preserved from relocated artifact. Finally, if right hand < [...]
-props.28.defaultValue = 
+props.28.description = Maven project settings.
+props.28.defaultValue = ${maven.project.conf}/settings.xml
 props.28.since = 4.0.0
 props.28.configurationSource = User properties
-props.29.key = maven.repo.central
+props.29.key = maven.relocations.entries
 props.29.configurationType = String
-props.29.description = Maven central repository URL. The property will have 
the value of the <code>MAVEN_REPO_CENTRAL</code> environment variable if it is 
defined.
-props.29.defaultValue = https://repo.maven.apache.org/maven2
+props.29.description = User controlled relocations. This property is a comma 
separated list of entries with the syntax <code>GAV&gt;GAV</code>. The first 
<code>GAV</code> can contain <code>\*</code> for any elem (so 
<code>\*:\*:\*</code> would mean ALL, something you don't want). The second 
<code>GAV</code> is either fully specified, or also can contain 
<code>\*</code>, then it behaves as "ordinary relocation": the coordinate is 
preserved from relocated artifact. Finally, if right hand < [...]
+props.29.defaultValue = 
 props.29.since = 4.0.0
 props.29.configurationSource = User properties
-props.30.key = maven.repo.local
+props.30.key = maven.repo.central
 props.30.configurationType = String
-props.30.description = Maven local repository.
-props.30.defaultValue = ${maven.user.conf}/repository
-props.30.since = 3.0.0
+props.30.description = Maven central repository URL. The property will have 
the value of the <code>MAVEN_REPO_CENTRAL</code> environment variable if it is 
defined.
+props.30.defaultValue = https://repo.maven.apache.org/maven2
+props.30.since = 4.0.0
 props.30.configurationSource = User properties
-props.31.key = maven.repo.local.head
+props.31.key = maven.repo.local
 props.31.configurationType = String
-props.31.description = User property for chained LRM: the new "head" local 
repository to use, and "push" the existing into tail. Similar to 
<code>maven.repo.local.tail</code>, this property may contain comma separated 
list of paths to be used as local repositories (combine with chained local 
repository), but while latter is "appending" this one is "prepending".
-props.31.defaultValue = 
-props.31.since = 4.0.0
+props.31.description = Maven local repository.
+props.31.defaultValue = ${maven.user.conf}/repository
+props.31.since = 3.0.0
 props.31.configurationSource = User properties
-props.32.key = maven.repo.local.recordReverseTree
+props.32.key = maven.repo.local.head
 props.32.configurationType = String
-props.32.description = User property for reverse dependency tree. If enabled, 
Maven will record ".tracking" directory into local repository with "reverse 
dependency tree", essentially explaining WHY given artifact is present in local 
repository. Default: <code>false</code>, will not record anything.
-props.32.defaultValue = false
-props.32.since = 3.9.0
+props.32.description = User property for chained LRM: the new "head" local 
repository to use, and "push" the existing into tail. Similar to 
<code>maven.repo.local.tail</code>, this property may contain comma separated 
list of paths to be used as local repositories (combine with chained local 
repository), but while latter is "appending" this one is "prepending".
+props.32.defaultValue = 
+props.32.since = 4.0.0
 props.32.configurationSource = User properties
-props.33.key = maven.repo.local.tail
+props.33.key = maven.repo.local.recordReverseTree
 props.33.configurationType = String
-props.33.description = User property for chained LRM: list of "tail" local 
repository paths (separated by comma), to be used with 
<code>org.eclipse.aether.util.repository.ChainedLocalRepositoryManager</code>. 
Default value: <code>null</code>, no chained LRM is used.
-props.33.defaultValue = 
+props.33.description = User property for reverse dependency tree. If enabled, 
Maven will record ".tracking" directory into local repository with "reverse 
dependency tree", essentially explaining WHY given artifact is present in local 
repository. Default: <code>false</code>, will not record anything.
+props.33.defaultValue = false
 props.33.since = 3.9.0
 props.33.configurationSource = User properties
-props.34.key = maven.repo.local.tail.ignoreAvailability
+props.34.key = maven.repo.local.tail
 props.34.configurationType = String
-props.34.description = User property for chained LRM: whether to ignore 
"availability check" in tail or not. Usually you do want to ignore it. This 
property is mapped onto corresponding Resolver 2.x property, is like a synonym 
for it. Default value: <code>true</code>.
+props.34.description = User property for chained LRM: list of "tail" local 
repository paths (separated by comma), to be used with 
<code>org.eclipse.aether.util.repository.ChainedLocalRepositoryManager</code>. 
Default value: <code>null</code>, no chained LRM is used.
 props.34.defaultValue = 
 props.34.since = 3.9.0
 props.34.configurationSource = User properties
-props.35.key = maven.resolver.dependencyManagerTransitivity
+props.35.key = maven.repo.local.tail.ignoreAvailability
 props.35.configurationType = String
-props.35.description = User property for selecting dependency manager 
behaviour regarding transitive dependencies and dependency management entries 
in their POMs. Maven 3 targeted full backward compatibility with Maven2, hence 
it ignored dependency management entries in transitive dependency POMs. Maven 4 
enables "transitivity" by default, hence unlike Maven2, obeys dependency 
management entries deep in dependency graph as well. <br/> Default: 
<code>"true"</code>.
-props.35.defaultValue = true
-props.35.since = 4.0.0
+props.35.description = User property for chained LRM: whether to ignore 
"availability check" in tail or not. Usually you do want to ignore it. This 
property is mapped onto corresponding Resolver 2.x property, is like a synonym 
for it. Default value: <code>true</code>.
+props.35.defaultValue = 
+props.35.since = 3.9.0
 props.35.configurationSource = User properties
-props.36.key = maven.resolver.transport
+props.36.key = maven.resolver.dependencyManagerTransitivity
 props.36.configurationType = String
-props.36.description = Resolver transport to use. Can be <code>default</code>, 
<code>wagon</code>, <code>apache</code>, <code>jdk</code> or <code>auto</code>.
-props.36.defaultValue = default
+props.36.description = User property for selecting dependency manager 
behaviour regarding transitive dependencies and dependency management entries 
in their POMs. Maven 3 targeted full backward compatibility with Maven2, hence 
it ignored dependency management entries in transitive dependency POMs. Maven 4 
enables "transitivity" by default, hence unlike Maven2, obeys dependency 
management entries deep in dependency graph as well. <br/> Default: 
<code>"true"</code>.
+props.36.defaultValue = true
 props.36.since = 4.0.0
 props.36.configurationSource = User properties
-props.37.key = maven.session.versionFilter
+props.37.key = maven.resolver.transport
 props.37.configurationType = String
-props.37.description = User property for version filter expression used in 
session, applied to resolving ranges: a semicolon separated list of filters to 
apply. By default, no version filter is applied (like in Maven 3). <br/> 
Supported filters: <ul> <li>"h" or "h(num)" - highest version or top list of 
highest ones filter</li> <li>"l" or "l(num)" - lowest version or bottom list of 
lowest ones filter</li> <li>"s" - contextual snapshot filter</li> 
<li>"e(G:A:V)" - predicate filter (leaves  [...]
-props.37.defaultValue = 
+props.37.description = Resolver transport to use. Can be <code>default</code>, 
<code>wagon</code>, <code>apache</code>, <code>jdk</code> or <code>auto</code>.
+props.37.defaultValue = default
 props.37.since = 4.0.0
 props.37.configurationSource = User properties
-props.38.key = maven.settings.security
+props.38.key = maven.session.versionFilter
 props.38.configurationType = String
-props.38.description = 
-props.38.defaultValue = ${maven.user.conf}/settings-security4.xml
+props.38.description = User property for version filter expression used in 
session, applied to resolving ranges: a semicolon separated list of filters to 
apply. By default, no version filter is applied (like in Maven 3). <br/> 
Supported filters: <ul> <li>"h" or "h(num)" - highest version or top list of 
highest ones filter</li> <li>"l" or "l(num)" - lowest version or bottom list of 
lowest ones filter</li> <li>"s" - contextual snapshot filter</li> 
<li>"e(G:A:V)" - predicate filter (leaves  [...]
+props.38.defaultValue = 
+props.38.since = 4.0.0
 props.38.configurationSource = User properties
-props.39.key = maven.startInstant
-props.39.configurationType = java.time.Instant
-props.39.description = User property used to store the build timestamp.
-props.39.defaultValue = 
-props.39.since = 4.0.0
+props.39.key = maven.settings.security
+props.39.configurationType = String
+props.39.description = 
+props.39.defaultValue = ${maven.user.conf}/settings-security4.xml
 props.39.configurationSource = User properties
-props.40.key = maven.style.color
-props.40.configurationType = String
-props.40.description = Maven output color mode. Allowed values are 
<code>auto</code>, <code>always</code>, <code>never</code>.
-props.40.defaultValue = auto
+props.40.key = maven.startInstant
+props.40.configurationType = java.time.Instant
+props.40.description = User property used to store the build timestamp.
+props.40.defaultValue = 
 props.40.since = 4.0.0
 props.40.configurationSource = User properties
-props.41.key = maven.style.debug
+props.41.key = maven.style.color
 props.41.configurationType = String
-props.41.description = Color style for debug messages.
-props.41.defaultValue = bold,f:cyan
+props.41.description = Maven output color mode. Allowed values are 
<code>auto</code>, <code>always</code>, <code>never</code>.
+props.41.defaultValue = auto
 props.41.since = 4.0.0
 props.41.configurationSource = User properties
-props.42.key = maven.style.error
+props.42.key = maven.style.debug
 props.42.configurationType = String
-props.42.description = Color style for error messages.
-props.42.defaultValue = bold,f:red
+props.42.description = Color style for debug messages.
+props.42.defaultValue = bold,f:cyan
 props.42.since = 4.0.0
 props.42.configurationSource = User properties
-props.43.key = maven.style.failure
+props.43.key = maven.style.error
 props.43.configurationType = String
-props.43.description = Color style for failure messages.
+props.43.description = Color style for error messages.
 props.43.defaultValue = bold,f:red
 props.43.since = 4.0.0
 props.43.configurationSource = User properties
-props.44.key = maven.style.info
+props.44.key = maven.style.failure
 props.44.configurationType = String
-props.44.description = Color style for info messages.
-props.44.defaultValue = bold,f:blue
+props.44.description = Color style for failure messages.
+props.44.defaultValue = bold,f:red
 props.44.since = 4.0.0
 props.44.configurationSource = User properties
-props.45.key = maven.style.mojo
+props.45.key = maven.style.info
 props.45.configurationType = String
-props.45.description = Color style for mojo messages.
-props.45.defaultValue = f:green
+props.45.description = Color style for info messages.
+props.45.defaultValue = bold,f:blue
 props.45.since = 4.0.0
 props.45.configurationSource = User properties
-props.46.key = maven.style.project
+props.46.key = maven.style.mojo
 props.46.configurationType = String
-props.46.description = Color style for project messages.
-props.46.defaultValue = f:cyan
+props.46.description = Color style for mojo messages.
+props.46.defaultValue = f:green
 props.46.since = 4.0.0
 props.46.configurationSource = User properties
-props.47.key = maven.style.strong
+props.47.key = maven.style.project
 props.47.configurationType = String
-props.47.description = Color style for strong messages.
-props.47.defaultValue = bold
+props.47.description = Color style for project messages.
+props.47.defaultValue = f:cyan
 props.47.since = 4.0.0
 props.47.configurationSource = User properties
-props.48.key = maven.style.success
+props.48.key = maven.style.strong
 props.48.configurationType = String
-props.48.description = Color style for success messages.
-props.48.defaultValue = bold,f:green
+props.48.description = Color style for strong messages.
+props.48.defaultValue = bold
 props.48.since = 4.0.0
 props.48.configurationSource = User properties
-props.49.key = maven.style.trace
+props.49.key = maven.style.success
 props.49.configurationType = String
-props.49.description = Color style for trace messages.
-props.49.defaultValue = bold,f:magenta
+props.49.description = Color style for success messages.
+props.49.defaultValue = bold,f:green
 props.49.since = 4.0.0
 props.49.configurationSource = User properties
-props.50.key = maven.style.transfer
+props.50.key = maven.style.trace
 props.50.configurationType = String
-props.50.description = Color style for transfer messages.
-props.50.defaultValue = f:bright-black
+props.50.description = Color style for trace messages.
+props.50.defaultValue = bold,f:magenta
 props.50.since = 4.0.0
 props.50.configurationSource = User properties
-props.51.key = maven.style.warning
+props.51.key = maven.style.transfer
 props.51.configurationType = String
-props.51.description = Color style for warning messages.
-props.51.defaultValue = bold,f:yellow
+props.51.description = Color style for transfer messages.
+props.51.defaultValue = f:bright-black
 props.51.since = 4.0.0
 props.51.configurationSource = User properties
-props.52.key = maven.user.conf
+props.52.key = maven.style.warning
 props.52.configurationType = String
-props.52.description = Maven user configuration directory.
-props.52.defaultValue = ${user.home}/.m2
+props.52.description = Color style for warning messages.
+props.52.defaultValue = bold,f:yellow
 props.52.since = 4.0.0
 props.52.configurationSource = User properties
-props.53.key = maven.user.extensions
+props.53.key = maven.user.conf
 props.53.configurationType = String
-props.53.description = Maven user extensions.
-props.53.defaultValue = ${maven.user.conf}/extensions.xml
+props.53.description = Maven user configuration directory.
+props.53.defaultValue = ${user.home}/.m2
 props.53.since = 4.0.0
 props.53.configurationSource = User properties
-props.54.key = maven.user.settings
+props.54.key = maven.user.extensions
 props.54.configurationType = String
-props.54.description = Maven user settings.
-props.54.defaultValue = ${maven.user.conf}/settings.xml
+props.54.description = Maven user extensions.
+props.54.defaultValue = ${maven.user.conf}/extensions.xml
 props.54.since = 4.0.0
 props.54.configurationSource = User properties
-props.55.key = maven.user.toolchains
+props.55.key = maven.user.settings
 props.55.configurationType = String
-props.55.description = Maven user toolchains.
-props.55.defaultValue = ${maven.user.conf}/toolchains.xml
+props.55.description = Maven user settings.
+props.55.defaultValue = ${maven.user.conf}/settings.xml
 props.55.since = 4.0.0
 props.55.configurationSource = User properties
-props.56.key = maven.versionResolver.noCache
-props.56.configurationType = Boolean
-props.56.description = User property for disabling version resolver cache.
-props.56.defaultValue = false
-props.56.since = 3.0.0
+props.56.key = maven.user.toolchains
+props.56.configurationType = String
+props.56.description = Maven user toolchains.
+props.56.defaultValue = ${maven.user.conf}/toolchains.xml
+props.56.since = 4.0.0
 props.56.configurationSource = User properties
+props.57.key = maven.version
+props.57.configurationType = String
+props.57.description = Maven version.
+props.57.defaultValue = 
+props.57.since = 3.0.0
+props.57.configurationSource = system_properties
+props.58.key = maven.version.major
+props.58.configurationType = String
+props.58.description = Maven major version: contains the major segment of this 
Maven version.
+props.58.defaultValue = 
+props.58.since = 4.0.0
+props.58.configurationSource = system_properties
+props.59.key = maven.version.minor
+props.59.configurationType = String
+props.59.description = Maven minor version: contains the minor segment of this 
Maven version.
+props.59.defaultValue = 
+props.59.since = 4.0.0
+props.59.configurationSource = system_properties
+props.60.key = maven.version.patch
+props.60.configurationType = String
+props.60.description = Maven patch version: contains the patch segment of this 
Maven version.
+props.60.defaultValue = 
+props.60.since = 4.0.0
+props.60.configurationSource = system_properties
+props.61.key = maven.version.snapshot
+props.61.configurationType = String
+props.61.description = Maven snapshot: contains "true" if this Maven is a 
snapshot version.
+props.61.defaultValue = 
+props.61.since = 4.0.0
+props.61.configurationSource = system_properties
+props.62.key = maven.versionResolver.noCache
+props.62.configurationType = Boolean
+props.62.description = User property for disabling version resolver cache.
+props.62.defaultValue = false
+props.62.since = 3.0.0
+props.62.configurationSource = User properties
diff --git a/src/site/markdown/configuration.yaml 
b/src/site/markdown/configuration.yaml
index 5071b37498..45aec4a24b 100644
--- a/src/site/markdown/configuration.yaml
+++ b/src/site/markdown/configuration.yaml
@@ -23,6 +23,12 @@ props:
       defaultValue: yyyy-MM-dd'T'HH:mm:ssXXX
       since: 3.0.0
       configurationSource: Model properties
+    - key: maven.build.version
+      configurationType: String
+      description: "Maven build version: a human-readable string containing 
this Maven version, buildnumber, and time of its build."
+      defaultValue: 
+      since: 3.0.0
+      configurationSource: system_properties
     - key: maven.builder.maxProblems
       configurationType: Integer
       description: "Max number of problems for each severity level retained by 
the model builder."
@@ -51,7 +57,7 @@ props:
       description: "Maven home."
       defaultValue: 
       since: 3.0.0
-      configurationSource: User properties
+      configurationSource: system_properties
     - key: maven.installation.conf
       configurationType: String
       description: "Maven installation configuration directory."
@@ -345,6 +351,36 @@ props:
       defaultValue: ${maven.user.conf}/toolchains.xml
       since: 4.0.0
       configurationSource: User properties
+    - key: maven.version
+      configurationType: String
+      description: "Maven version."
+      defaultValue: 
+      since: 3.0.0
+      configurationSource: system_properties
+    - key: maven.version.major
+      configurationType: String
+      description: "Maven major version: contains the major segment of this 
Maven version."
+      defaultValue: 
+      since: 4.0.0
+      configurationSource: system_properties
+    - key: maven.version.minor
+      configurationType: String
+      description: "Maven minor version: contains the minor segment of this 
Maven version."
+      defaultValue: 
+      since: 4.0.0
+      configurationSource: system_properties
+    - key: maven.version.patch
+      configurationType: String
+      description: "Maven patch version: contains the patch segment of this 
Maven version."
+      defaultValue: 
+      since: 4.0.0
+      configurationSource: system_properties
+    - key: maven.version.snapshot
+      configurationType: String
+      description: "Maven snapshot: contains \"true\" if this Maven is a 
snapshot version."
+      defaultValue: 
+      since: 4.0.0
+      configurationSource: system_properties
     - key: maven.versionResolver.noCache
       configurationType: Boolean
       description: "User property for disabling version resolver cache."
diff --git a/src/site/markdown/maven-configuration.md 
b/src/site/markdown/maven-configuration.md
index b886334642..3894be7730 100644
--- a/src/site/markdown/maven-configuration.md
+++ b/src/site/markdown/maven-configuration.md
@@ -26,11 +26,12 @@ under the License.
 | Key | Type | Description | Default Value | Since | Source |
 | --- | --- | --- | --- | --- | --- |
 | `maven.build.timestamp.format` | `String` | Build timestamp format. |  
`yyyy-MM-dd'T'HH:mm:ssXXX`  | 3.0.0 | Model properties |
+| `maven.build.version` | `String` | Maven build version: a human-readable 
string containing this Maven version, buildnumber, and time of its build. |  -  
| 3.0.0 | system_properties |
 | `maven.builder.maxProblems` | `Integer` | Max number of problems for each 
severity level retained by the model builder. |  `100`  | 4.0.0 | User 
properties |
 | `maven.consumer.pom` | `Boolean` | User property for enabling/disabling the 
consumer POM feature. |  `true`  | 4.0.0 | User properties |
 | `maven.deploy.snapshot.buildNumber` | `Integer` | User property for 
overriding calculated "build number" for snapshot deploys. Caution: this 
property should be RARELY used (if used at all). It may help in special cases 
like "aligning" a reactor build subprojects build numbers to perform a 
"snapshot lock down". Value given here must be <code>maxRemoteBuildNumber + 
1</code> or greater, otherwise build will fail. How the number to be obtained 
is left to user (ie by inspecting snapshot rep [...]
 | `maven.ext.class.path` | `String` | Extensions class path. |  -  |  | User 
properties |
-| `maven.home` | `String` | Maven home. |  -  | 3.0.0 | User properties |
+| `maven.home` | `String` | Maven home. |  -  | 3.0.0 | system_properties |
 | `maven.installation.conf` | `String` | Maven installation configuration 
directory. |  `${maven.home}/conf`  | 4.0.0 | User properties |
 | `maven.installation.extensions` | `String` | Maven installation extensions. 
|  `${maven.installation.conf}/extensions.xml`  | 4.0.0 | User properties |
 | `maven.installation.settings` | `String` | Maven installation settings. |  
`${maven.installation.conf}/settings.xml`  | 4.0.0 | User properties |
@@ -80,5 +81,10 @@ under the License.
 | `maven.user.extensions` | `String` | Maven user extensions. |  
`${maven.user.conf}/extensions.xml`  | 4.0.0 | User properties |
 | `maven.user.settings` | `String` | Maven user settings. |  
`${maven.user.conf}/settings.xml`  | 4.0.0 | User properties |
 | `maven.user.toolchains` | `String` | Maven user toolchains. |  
`${maven.user.conf}/toolchains.xml`  | 4.0.0 | User properties |
+| `maven.version` | `String` | Maven version. |  -  | 3.0.0 | 
system_properties |
+| `maven.version.major` | `String` | Maven major version: contains the major 
segment of this Maven version. |  -  | 4.0.0 | system_properties |
+| `maven.version.minor` | `String` | Maven minor version: contains the minor 
segment of this Maven version. |  -  | 4.0.0 | system_properties |
+| `maven.version.patch` | `String` | Maven patch version: contains the patch 
segment of this Maven version. |  -  | 4.0.0 | system_properties |
+| `maven.version.snapshot` | `String` | Maven snapshot: contains "true" if 
this Maven is a snapshot version. |  -  | 4.0.0 | system_properties |
 | `maven.versionResolver.noCache` | `Boolean` | User property for disabling 
version resolver cache. |  `false`  | 3.0.0 | User properties |
 


Reply via email to