You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2017/09/29 08:23:22 UTC

svn commit: r1810066 - /sling/trunk/parent/pom.xml

Author: kwin
Date: Fri Sep 29 08:23:22 2017
New Revision: 1810066

URL: http://svn.apache.org/viewvc?rev=1810066&view=rev
Log:
SLING-7132 add profile for java9 to leverage release option of javac

only use animal-sniffer for java < 9

Modified:
    sling/trunk/parent/pom.xml

Modified: sling/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/parent/pom.xml?rev=1810066&r1=1810065&r2=1810066&view=diff
==============================================================================
--- sling/trunk/parent/pom.xml (original)
+++ sling/trunk/parent/pom.xml Fri Sep 29 08:23:22 2017
@@ -52,14 +52,12 @@
               - 6: Java 6
               - 7: Java 7 (default)
               - 8: Java 8
-            Using anything else causes the set-bundle-required-execution-environment
-            to fail the build with an exception
+              - 9: Java 9
         -->
         <sling.java.version>7</sling.java.version>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     </properties>
 
-
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/parent</connection>
         <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/parent</developerConnection>
@@ -111,12 +109,26 @@
 
     <build>
         <plugins>
-            <!-- Require Java 7 or higher for building (as bnd since version 3.0 is built with Java 7) -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-enforcer-plugin</artifactId>
                 <version>3.0.0-M1</version>
                 <executions>
+                     <execution>
+                        <id>enforce-property-values</id>
+                        <goals>
+                          <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                          <rules>
+                            <requireProperty>
+                              <property>sling.java.version</property>
+                              <regex>[6-9]</regex>
+                              <regexMessage>The property "sling.java.version" may only have one of the following values: 6, 7, 8 or 9.</regexMessage>
+                            </requireProperty>
+                          </rules>
+                        </configuration>
+                    </execution>
                     <execution>
                         <id>enforce-java</id>
                         <goals>
@@ -124,10 +136,10 @@
                         </goals>
                         <configuration>
                             <rules>
+                                <!-- Require Java 7 or higher for building (as bnd since version 3.0 is built with Java 7) -->
                                 <requireJavaVersion>
                                     <message>
-                                        Apache Sling must be compiled with Java
-                                        7 or higher
+                                        Apache Sling must be compiled with Java 7 or higher
                                     </message>
                                     <version>1.7.0</version>
                                 </requireJavaVersion>
@@ -171,9 +183,6 @@
                 </executions>
             </plugin>
 
-            <!-- warn for SLING-443/SLING-1782 -->
-
-
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>ianal-maven-plugin</artifactId>
@@ -190,19 +199,6 @@
                 </executions>
             </plugin>
 
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>animal-sniffer-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
             <!--
                  override the default remote-resources configuration from the Apache pom
                  to include our custom NOTICE file
@@ -225,15 +221,6 @@
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                        <source>1.${sling.java.version}</source>
-                        <target>1.${sling.java.version}</target>
-                        <encoding>${project.build.sourceEncoding}</encoding>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-release-plugin</artifactId>
                 <dependencies>
                     <dependency>
@@ -290,6 +277,11 @@
         <pluginManagement>
             <plugins>
                 <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>3.7.0</version>
+                </plugin>
+                <plugin>
                     <groupId>org.apache.sling</groupId>
                     <artifactId>maven-sling-plugin</artifactId>
                     <version>2.3.0</version>
@@ -398,7 +390,7 @@
                 <plugin>
                     <groupId>org.codehaus.mojo</groupId>
                     <artifactId>animal-sniffer-maven-plugin</artifactId>
-                    <version>1.15</version>
+                    <version>1.16</version>
                     <configuration>
                         <signature>
                             <groupId>org.codehaus.mojo.signature</groupId>
@@ -642,6 +634,58 @@
             </build>
         </profile>
 
+        <profile>
+            <id>jdk8-or-lower</id>
+            <activation>
+                <!-- syntax according to http://maven.apache.org/enforcer/enforcer-rules/versionRanges.html -->
+                <jdk>(,9)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-compiler-plugin</artifactId>
+                        <configuration>
+                            <source>1.${sling.java.version}</source>
+                            <target>1.${sling.java.version}</target>
+                        </configuration>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>animal-sniffer-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>check</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                     </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jdk9-or-higher</id>
+            <activation>
+                <!-- syntax according to http://maven.apache.org/enforcer/enforcer-rules/versionRanges.html -->
+                <jdk>[9,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-compiler-plugin</artifactId>
+                        <configuration>
+                            <!-- 
+                            release sets API classpath, source and target, see 
+                            https://docs.oracle.com/javase/9/tools/javac.htm#GUID-AEEC9F07-CB49-4E96-8BC7-BCC2C7F725C9__GUID-D343F6B4-3FDD-43A8-AD24-43DD70214471 
+                            and http://openjdk.java.net/jeps/247 -->
+                            <release>${sling.java.version}</release>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
         <!-- This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
         <profile>
             <id>only-eclipse</id>
@@ -1084,7 +1128,6 @@
                 <scope>provided</scope>
             </dependency>
 
-
             <dependency>
                 <groupId>com.google.code.findbugs</groupId>
                 <artifactId>jsr305</artifactId>