You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2022/11/30 19:36:53 UTC

[maven-site] 01/01: [MNGSITE-501] Clarify profile jdk activation

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

kwin pushed a commit to branch bugfix/clarify-jdk-profile-activation
in repository https://gitbox.apache.org/repos/asf/maven-site.git

commit e458f1b5c148a418a60a9313a8e78a12509d4977
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Nov 30 20:36:46 2022 +0100

    [MNGSITE-501] Clarify profile jdk activation
---
 .../introduction/introduction-to-profiles.apt      |  10 +-
 content/apt/pom.apt.vm                             | 117 ++-------------------
 2 files changed, 18 insertions(+), 109 deletions(-)

diff --git a/content/apt/guides/introduction/introduction-to-profiles.apt b/content/apt/guides/introduction/introduction-to-profiles.apt
index c56e0fc3..5a6e7c4d 100644
--- a/content/apt/guides/introduction/introduction-to-profiles.apt
+++ b/content/apt/guides/introduction/introduction-to-profiles.apt
@@ -28,6 +28,8 @@
 
 Introduction to Build Profiles
 
+%{toc|section=0|fromDepth=2|toDepth=3}
+
   Apache Maven goes to great lengths to ensure that builds are portable. Among
   other things, this means allowing build configuration inside the POM,
   avoiding <<all>> filesystem references (in inheritance, dependencies, and
@@ -127,11 +129,12 @@ mvn groupId:artifactId:goal -P profile-1,profile-2,?profile-3
   Profiles can be automatically triggered based on the detected state of
   the build environment. These triggers are specified via an <<<\<activation\>>>>
   section in the profile itself. Currently, this detection is limited to
-  prefix-matching of the JDK version, the presence of a system property or
-  the value of a system property. Here are some examples.
+  matching of the JDK version, matching the operating system,
+  the presence of a system property or the value of a system property. Here are some examples.
 
   The following configuration will trigger the profile when the JDK's
-  version starts with "1.4" (eg. "1.4.0_08", "1.4.2_07", "1.4"):
+  version <starts with> "1.4" (eg. "1.4.0_08", "1.4.2_07", "1.4"), particularly it <won't be active>
+  for <<newer>> versions like "1.8" or "11":
 
 +---+
 <profiles>
@@ -145,6 +148,7 @@ mvn groupId:artifactId:goal -P profile-1,profile-2,?profile-3
 +---+
 
   Ranges can also be used as of Maven 2.1 (refer to the {{{/enforcer/enforcer-rules/versionRanges.html} Enforcer Version Range Syntax}} for more information).
+  Range values must start with either <<<[>>> or <<<(>>> otherwise the value is interpreted as prefix.
   The following honours versions 1.3, 1.4 and 1.5.
 
 +---+
diff --git a/content/apt/pom.apt.vm b/content/apt/pom.apt.vm
index d7703306..16a50a47 100644
--- a/content/apt/pom.apt.vm
+++ b/content/apt/pom.apt.vm
@@ -26,109 +26,7 @@
 
 POM Reference
 
-  [[1]] {{{Introduction}Introduction}}
-
-    [[1]] {{{What_is_the_POM}What is the POM?}}
-
-    [[2]] {{{Quick_Overview}Quick Overview}}
-
-  [[2]] {{{The_Basics}The Basics}}
-
-    [[1]] {{{Maven_Coordinates}Maven Coordinates}}
-
-    [[2]] {{{POM_Relationships}POM Relationships}}
-
-      [[1]] {{{Dependencies}Dependencies}}
-
-        [[1]] {{{Dependency_Version_Requirement_Specification}Dependency Version Requirement Specification}}
-
-        [[2]] {{{Version_Order_Specification}Version Order Specification}}
-
-        [[3]] {{{Version_Order_Testing}Version Order Testing}}
-
-        [[4]] {{{Exclusions}Exclusions}}
-
-      [[2]] {{{Inheritance}Inheritance}}
-
-        [[1]] {{{The_Super_POM}The Super POM}}
-
-        [[2]] {{{Dependency_Management}Dependency Management}}
-
-      [[3]] {{{Aggregation}Aggregation (or Multi-Module)}}
-
-        [[1]] {{{Inheritance_v._Aggregation}Inheritance v. Aggregation}}
-
-    [[3]] {{{Properties}Properties}}
-
-  [[3]] {{{Build_Settings}Build Settings}}
-
-    [[1]] {{{Build}Build}}
-
-      [[1]] {{{BaseBuild_Element}The BaseBuild Element Set}}
-
-        [[1]] {{{Resources}Resources}}
-
-        [[2]] {{{Plugins}Plugins}}
-
-          [[1]]{{{default_configuration_inheritance}Default Configuration Inheritance}}
-
-          [[2]]{{{advanced_configuration_inheritance}Advanced Configuration Inheritance}}
-
-        [[3]] {{{Plugin_Management}Plugin Management}}
-
-      [[2]] {{{Build_Element}The Build Element Set}}
-
-        [[1]] {{{Directories}Directories}}
-
-        [[2]] {{{Extensions}Extensions}}
-
-    [[2]] {{{Reporting}Reporting}}
-
-      [[1]] {{{Report_Sets}Report Sets}}
-
-  [[4]] {{{More_Project_Information}More Project Information}}
-
-    [[1]] {{{Licenses}Licenses}}
-
-    [[2]] {{{Organization}Organization}}
-
-    [[3]] {{{Developers}Developers}}
-
-    [[4]] {{{Contributors}Contributors}}
-
-  [[5]] {{{Environment_Settings}Environment Settings}}
-
-    [[1]] {{{Issue_Management}Issue Management}}
-
-    [[2]] {{{Continuous_Integration_Management}Continuous Integration Management}}
-
-    [[3]] {{{Mailing_Lists}Mailing Lists}}
-
-    [[4]] {{{SCM}SCM}}
-
-    [[5]] {{{Prerequisites}Prerequisites}}
-
-    [[6]] {{{Repositories}Repositories}}
-
-    [[7]] {{{Plugin_Repositories}Plugin Repositories}}
-
-    [[8]] {{{Distribution_Management}Distribution Management}}
-
-      [[1]] {{{Repository}Repository}}
-
-      [[2]] {{{Site_Distribution}Site Distribution}}
-
-      [[3]] {{{Relocation}Relocation}}
-
-    [[9]] {{{Profiles}Profiles}}
-
-      [[1]] {{{Activation}Activation}}
-
-      [[2]] {{{The_BaseBuild_Element_Set}The BaseBuild Element Set <(revisited)>}}
-
-  [[6]] {{{Final}Final}}
-
-  []
+%{toc|section=0|fromDepth=1|toDepth=3}
 
 {Introduction}
 
@@ -2068,9 +1966,16 @@ scm:cvs:pserver:127.0.0.1:/cvs/root:my-project
   Since Maven 3.2.2 activation occurs when all of the specified criteria have been met.
 
   * <<jdk>>:
-  <<<activation>>> has a built in, Java-centric check in the <<<jdk>>> element. This will activate if the test
-  is run under a jdk version number that matches the prefix given. In the above example, <<<1.5.0_06>>>
-  will match. Ranges are also supported. See the {{{/enforcer/enforcer-rules/versionRanges.html} maven-enforcer-plugin}} for more details about supported ranges.
+  <<<activation>>> has a built in, Java-centric check in the <<<jdk>>> element. The value is one of the following three types:
+  
+    * A version range according to the definition of {{{/enforcer/enforcer-rules/versionRanges.html} maven-enforcer-plugin}} in case the value starts with either <<<[>>> or <<<(>>>,
+    
+    * A negated prefix if the value starts with <<<!>>> or
+    
+    * A (non-negated) prefix for all other cases
+    
+  (Negated) prefix values match if the JDK version used for running Maven starts/doesn't start with the given prefix (excluding the potentially leading <<<!>>>).
+  The value ranges match if the JDK version used for running Maven is between lower and upper bounds (either inclusive or exclusive).
 
   * <<os>>:
   The <<<os>>> element can define some operating system specific properties shown above. See the maven-enforcer-plugins {{{https://maven.apache.org/enforcer/enforcer-rules/requireOS.html}RequireOS Rule}} for more details about OS values.