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>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>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 |