Fix: Use JDK17 in maven build GHA
[oparent.git] / pom.xml
diff --git a/pom.xml b/pom.xml
index 64a62ed..4a42e8b 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-   Copyright (c) 2016-2017 Huawei Technologies Co., Ltd.
-   Modifications copyright (C) 2017 AT&T Intellectual Property
+   Copyright (c) 2016-2018 Huawei Technologies Co., Ltd.
+   Modifications copyright (C) 2017-2019 AT&T Intellectual Property
+   Modifications Copyright (C) 2020 Bell Canada.
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
   <name>oparent</name>
   <groupId>org.onap.oparent</groupId>
   <artifactId>version</artifactId>
-  <version>1.0.0-SNAPSHOT</version>
+  <version>3.3.4-SNAPSHOT</version>
   <packaging>pom</packaging>
   <modules>
     <!-- oparent tools -->
     <module>checkstyle</module>
     <module>license</module>
     <module>oparent</module>
+    <module>oparent-python</module>
+    <module>dependencies</module>
+    <module>dependencies-clm</module>
   </modules>
   <properties>
-    <maven.compiler.source>1.8</maven.compiler.source>
-    <maven.compiler.target>1.8</maven.compiler.target>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-    <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
     <!-- sitePath may be overridden in the inheriting POM if desired -->
     <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>
+    <maven.compiler.release>11</maven.compiler.release>
+    <sonar.scanner.version>3.7.0.1746</sonar.scanner.version>
+
+    <!-- 
+       In the java 8 version of oparent there were two variables defined for 1.8 source and target. These are no longer
+       applicable in Java 11 but you may be referencing them in your child poms so review and update as appropriate.
+         <maven.compiler.source>1.8</maven.compiler.source>
+         <maven.compiler.target>1.8</maven.compiler.target>
+    -->
+    <!--
+        The following properties should be defined in your own ~/.m2/settings.xml based on your own build infastructure setup.
+        See the settings.xml in this directory for default settings based on the Linux Foundation ONAP infrastructure.
+
+    <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
+    <onap.nexus.rawrepo.baseurl.upload>https://nexus.onap.org/content/sites/raw</onap.nexus.rawrepo.baseurl.upload>
+    <onap.nexus.rawrepo.baseurl.download>https://nexus.onap.org/service/local/repositories/raw/content</onap.nexus.rawrepo.baseurl.download>
+    <onap.nexus.rawrepo.serverid>ecomp-raw</onap.nexus.rawrepo.serverid>
+    <onap.nexus.dockerregistry.daily>nexus3.onap.org:10003</onap.nexus.dockerregistry.daily>
+    <onap.nexus.dockerregistry.release>nexus3.onap.org:10002</onap.nexus.dockerregistry.release>
+    <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
+    <docker.push.registry>nexus3.onap.org:10003</docker.push.registry>
+    -->
   </properties>
   <distributionManagement>
     <repository>
     <pluginManagement>
       <plugins>
         <plugin>
-          <groupId>org.sonatype.plugins</groupId>
-          <artifactId>nexus-staging-maven-plugin</artifactId>
-          <version>1.6.7</version>
-          <extensions>true</extensions>
-          <configuration>
-            <nexusUrl>${onap.nexus.url}</nexusUrl>
-            <stagingProfileId>176c31dfe190a</stagingProfileId>
-            <serverId>ecomp-staging</serverId>
-          </configuration>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-compiler-plugin</artifactId>
+            <version>3.8.0</version>
+            <configuration>
+               <release>${maven.compiler.release}</release>
+            </configuration>
+        </plugin>
+        <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>versions-maven-plugin</artifactId>
+            <version>2.7</version>
+            <configuration>
+               <generateBackupPoms>false</generateBackupPoms>
+            </configuration>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
             <dependency>
               <groupId>org.apache.maven.wagon</groupId>
               <artifactId>wagon-webdav-jackrabbit</artifactId>
-              <version>2.10</version>
+              <version>3.4.3</version>
             </dependency>
           </dependencies>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-enforcer-plugin</artifactId>
-          <version>3.0.0-M1</version>
+          <version>3.0.0-M2</version>
           <executions>
+            <execution>
+              <id>enforce-property</id>
+              <goals>
+                <goal>enforce</goal>
+              </goals>
+              <configuration>
+                <rules>
+                  <requireProperty>
+                    <property>onap.nexus.url</property>
+                    <message>You must set a onap.nexus.url property in your ~/.m2/settings.xml.  See oparent/settings.xml for an example.</message>
+                  </requireProperty>
+                </rules>
+                <fail>true</fail>
+              </configuration>
+            </execution>
             <execution>
               <id>enforce-no-snapshots</id>
               <goals>
                   <requireReleaseDeps>
                     <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
                     <onlyWhenRelease>true</onlyWhenRelease>
+                    <level>ERROR</level>
                   </requireReleaseDeps>
                 </rules>
               </configuration>
             </execution>
           </executions>
         </plugin>
+        <!-- https://mvnrepository.com/artifact/org.sonarsource.scanner.maven/sonar-maven-plugin -->
         <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>versions-maven-plugin</artifactId>
-          <version>2.4</version>
-          <executions>
-            <execution>
-              <id>check-dependencies-version</id>
-              <phase>validate</phase>
-              <goals>
-                <goal>display-dependency-updates</goal>
-              </goals>
-              <configuration>
-                <rulesUri>https://git.onap.org/oparent/plain/versions/src/main/resources/onap-versions/ruleset.xml</rulesUri>
-              </configuration>
-            </execution>
-          </executions>
+          <groupId>org.sonarsource.scanner.maven</groupId>
+          <artifactId>sonar-maven-plugin</artifactId>
+          <version>${sonar.scanner.version}</version>
+        </plugin>
+        <!--
+        Using https://code.revelc.net/formatter-maven-plugin/ for Eclipse formatter
+        Using https://github.com/diffplug/spotless/tree/master/plugin-maven for import order
+        Use in combination to rewrite code and imports, then checkstyle
+
+        Be sure to override ${project.parent.basedir} in order to find the XML file
+
+        1st - your project should be inheriting from this oparent java dependency
+        2nd - go into your project's source directory
+        3rd - type in the following and make sure you set the path to where you have oparent cloned and its
+              onap-java-formatter.xml file
+
+        mvn formatter:format spotless:apply process-sources -Dproject.parent.basedir=TODO
+        -->
+        <plugin>
+            <groupId>net.revelc.code.formatter</groupId>
+            <artifactId>formatter-maven-plugin</artifactId>
+            <version>2.11.0</version>
+            <configuration>
+                <configFile>${project.parent.basedir}/onap-java-formatter.xml</configFile>
+            </configuration>
+            <!-- https://code.revelc.net/formatter-maven-plugin/
+                 use mvn formatter:format to rewrite source files
+                 use mvn formatter:validate to validate source files -->
+        </plugin>
+        <plugin>
+            <groupId>com.diffplug.spotless</groupId>
+            <artifactId>spotless-maven-plugin</artifactId>
+            <version>1.26.1</version>
+            <configuration>
+                <java>
+                    <importOrder>
+                        <order>com,java,javax,org</order>
+                    </importOrder>
+                </java>
+            </configuration>
+            <!-- https://github.com/diffplug/spotless/tree/master/plugin-maven
+                 use mvn spotless:apply to rewrite source files
+                 use mvn spotless:check to validate source files -->
         </plugin>
       </plugins>
     </pluginManagement>
     <plugins>
-      <plugin>
-        <groupId>org.sonatype.plugins</groupId>
-        <artifactId>nexus-staging-maven-plugin</artifactId>
-      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-deploy-plugin</artifactId>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
       </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>versions-maven-plugin</artifactId>
-      </plugin>
     </plugins>
   </build>
 </project>