Bump maven-project-info-reports-plugin to 3.0.0
[odlparent.git] / odlparent-lite / pom.xml
index 7f56a8d855cf209befd8b10253e86c7e78cb52ce..806b917176949f705d903703f989a6f5d2f4cb83 100644 (file)
@@ -7,7 +7,8 @@
  terms of the Eclipse Public License v1.0 which accompanies this distribution,
  and is available at http://www.eclipse.org/legal/epl-v10.html
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <!--
 
   <groupId>org.opendaylight.odlparent</groupId>
   <artifactId>odlparent-lite</artifactId>
-  <version>1.7.0-SNAPSHOT</version>
+  <version>4.0.1-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>ODL :: odlparent :: ${project.artifactId}</name>
 
+  <!-- Sufficient Metadata for Maven Central Repository deployment
+       These are default, some of which project inheriting from this POM may override (but don't have to, typically)
+       see http://central.sonatype.org/pages/requirements.html
+   -->
+  <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
+  <description>OpenDaylight is leading the transformation to Open Software Defined Networking (SDN). For more information, please see https://www.opendaylight.org</description>
+
   <licenses>
     <license>
       <name>Eclipse Public License v1.0</name>
@@ -34,8 +42,8 @@
   </organization>
 
   <issueManagement>
-    <system>Bugzilla</system>
-    <url>https://bugs.opendaylight.org/</url>
+    <system>JIRA</system>
+    <url>https://jira.opendaylight.org/</url>
   </issueManagement>
 
   <ciManagement>
     <url>https://jenkins.opendaylight.org/releng/</url>
   </ciManagement>
 
-  <prerequisites>
-    <!-- This is only used to prevent building with Maven < 3 and to appease
-         maven-dependency-plugin; our real Maven requirement is enforced by
-         the enforcer plugin. -->
-    <maven>3.0.5</maven>
-  </prerequisites>
+  <scm>
+    <url>https://git.opendaylight.org/gerrit/</url>
+  </scm>
+
+  <developers>
+    <developer>
+      <id>*</id>
+      <name>Please consult the PROJECT_INFO.yaml, README* and/or CONTRIBUTORS which should be included with this JAR</name>
+      <url>https://www.opendaylight.org</url>
+      <email>helpdesk@opendaylight.org</email>
+    </developer>
+  </developers>
 
   <properties>
     <nexusproxy>https://nexus.opendaylight.org/content</nexusproxy>
 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+    <!-- This version property instead of just direct version in pluginManagement is the exception that confirms the rule
+         and is required so that downstream users of the archetype-packaging extension can use this (and get the same version
+         as the maven-archetype-plugin), because there is no "extensionManagement" in Maven -->
+    <maven.archetype.plugin.version>3.0.1</maven.archetype.plugin.version>
+
+    <!-- This property allows deployments to be skipped in child modules -->
+    <maven.deploy.skip>false</maven.deploy.skip>
+
+    <!-- This property allows installations to be skipped in child modules -->
+    <maven.install.skip>false</maven.install.skip>
+
+    <!-- Used in neutron, ovsdb -->
+    <jacoco.version>0.8.2</jacoco.version>
   </properties>
 
   <build>
     <pluginManagement>
       <plugins>
+        <plugin>
+          <artifactId>maven-archetype-plugin</artifactId>
+          <version>${maven.archetype.plugin.version}</version>
+        </plugin>
         <plugin>
           <artifactId>maven-clean-plugin</artifactId>
-          <version>3.0.0</version>
+          <version>3.1.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-dependency-plugin</artifactId>
+          <version>3.1.1</version>
         </plugin>
         <plugin>
           <artifactId>maven-deploy-plugin</artifactId>
           <version>2.8.2</version>
+          <configuration>
+            <skip>${maven.deploy.skip}</skip>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-help-plugin</artifactId>
+          <version>3.1.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-install-plugin</artifactId>
           <version>2.5.2</version>
+          <configuration>
+            <skip>${maven.install.skip}</skip>
+          </configuration>
         </plugin>
         <plugin>
           <artifactId>maven-javadoc-plugin</artifactId>
-          <version>2.10.3</version>
-          <configuration>
+          <version>3.0.1</version>
+          <configuration combine.children="append">
             <!-- Keep things quiet except for warnings/errors -->
             <quiet>true</quiet>
             <tags>
               </tag>
               <!-- end HelpMojo support -->
             </tags>
+            <detectLinks>false</detectLinks> <!-- TODO: It should work once https://issues.apache.org/jira/browse/MJAVADOC-427 is solved -->
+            <detectOfflineLinks>true</detectOfflineLinks>
           </configuration>
           <executions>
             <execution>
         </plugin>
         <plugin>
           <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>2.9</version>
+          <version>3.0.0</version>
         </plugin>
         <plugin>
           <artifactId>maven-release-plugin</artifactId>
         </plugin>
         <plugin>
           <artifactId>maven-site-plugin</artifactId>
-          <version>3.5.1</version>
+          <version>3.7</version>
           <configuration>
             <asciidoc>
               <attributes>
             </asciidoc>
           </configuration>
           <dependencies>
-            <dependency>
-              <!-- Downgrade Velocity; the Asciidoctor templates don't work with Velocity 1.7 -->
-              <!-- See https://maven.apache.org/plugins/maven-site-plugin/migrate.html -->
-              <groupId>org.apache.velocity</groupId>
-              <artifactId>velocity</artifactId>
-              <version>1.5</version>
-            </dependency>
-            <dependency>
-              <groupId>org.apache.maven.doxia</groupId>
-              <artifactId>doxia-core</artifactId>
-              <version>1.7</version>
-            </dependency>
             <dependency>
               <groupId>org.asciidoctor</groupId>
               <artifactId>asciidoctor-maven-plugin</artifactId>
-              <version>1.5.3</version>
+              <version>1.5.6</version>
             </dependency>
             <dependency>
               <groupId>org.asciidoctor</groupId>
               <artifactId>asciidoctorj-diagram</artifactId>
-              <version>1.3.1</version>
+              <version>1.5.4.1</version>
             </dependency>
           </dependencies>
         </plugin>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>exec-maven-plugin</artifactId>
+          <version>1.6.0</version>
+        </plugin>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>jdepend-maven-plugin</artifactId>
           <configuration>
             <lifecycleMappingMetadata>
               <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>pl.project13.maven</groupId>
+                    <artifactId>git-commit-id-plugin</artifactId>
+                    <versionRange>[1,)</versionRange>
+                    <goals>
+                      <goal>revision</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
                 <pluginExecution>
                   <pluginExecutionFilter>
                     <groupId>org.apache.maven.plugins</groupId>
                     <ignore></ignore>
                   </action>
                 </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-enforcer-plugin</artifactId>
+                    <versionRange>[1.0.0,)</versionRange>
+                    <goals>
+                      <goal>enforce</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore />
+                  </action>
+                </pluginExecution>
               </pluginExecutions>
             </lifecycleMappingMetadata>
           </configuration>
         </plugin>
+        <plugin>
+          <groupId>org.jacoco</groupId>
+          <artifactId>jacoco-maven-plugin</artifactId>
+          <version>${jacoco.version}</version>
+        </plugin>
       </plugins>
     </pluginManagement>
+
+    <plugins>
+      <plugin>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <version>3.0.0-M2</version>
+        <executions>
+          <execution>
+            <id>enforce-maven</id>
+            <configuration>
+              <rules>
+                <requireJavaVersion>
+                  <version>1.8.0</version>
+                </requireJavaVersion>
+                <requireMavenVersion>
+                  <version>[3.5.0,)</version>
+                </requireMavenVersion>
+              </rules>
+            </configuration>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>pl.project13.maven</groupId>
+        <artifactId>git-commit-id-plugin</artifactId>
+        <version>2.2.5</version>
+        <executions>
+          <execution>
+            <id>get-git-infos</id>
+            <goals>
+              <goal>revision</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <failOnNoGitDirectory>false</failOnNoGitDirectory>
+          <generateGitPropertiesFile>true</generateGitPropertiesFile>
+          <generateGitPropertiesFilename>${project.build.outputDirectory}/META-INF/git.properties</generateGitPropertiesFilename>
+          <gitDescribe>
+            <skip>false</skip>
+            <always>true</always>
+            <tags>true</tags>
+          </gitDescribe>
+        </configuration>
+      </plugin>
+    </plugins>
   </build>
 
   <profiles>
+    <profile>
+      <id>ide</id>
+      <activation>
+        <property>
+          <name>m2e.version</name>
+        </property>
+      </activation>
+      <build>
+        <!-- Put the IDE's build output in a folder other than target, so that IDE builds don't interact with Maven builds -->
+        <directory>target-ide</directory>
+      </build>
+    </profile>
     <profile>
         <!-- http://blog2.vorburger.ch/2016/06/improve-maven-build-speed-with-q.html
              q = http://memory-alpha.wikia.com/wiki/Q ;)
              while you typed the code anyway.  Similarly, if you wrote a test, you'll probably already have compiled and run it
              from your IDE, so when you want the OSGi bundle JAR for Karaf, ASAP, you typically don't want all that to run again.
           -->
-        <id>q</id>
-        <properties>
-            <skipTests>true</skipTests>
-            <skipIT>true</skipIT>
-            <skipITs>true</skipITs>
-            <maven.test.skip>true</maven.test.skip>
-            <skip.karaf.featureTest>true</skip.karaf.featureTest>
-            <jacoco.skip>true</jacoco.skip>
-            <maven.javadoc.skip>true</maven.javadoc.skip>
-            <maven.source.skip>true</maven.source.skip>
-            <checkstyle.skip>true</checkstyle.skip>
-            <findbugs.skip>true</findbugs.skip>
-            <pmd.skip>true</pmd.skip>
-            <cpd.skip>true</cpd.skip>
-            <maven.site.skip>true</maven.site.skip>
-            <invoker.skip>true</invoker.skip>
-            <enforcer.skip>true</enforcer.skip>
-        </properties>
+      <id>q</id>
+      <properties>
+        <skipTests>true</skipTests>
+            <!-- But NOT <maven.test.skip>true, as that's for compiling, not running, tests;
+                 and that's usually quick.  Skipping test compilation with -Pq with maven.test.skip would be
+                 particularly confusing when used in a project with maven-jar-plugin <goal>test-jar, so don't.)  -->
+        <skipIT>true</skipIT>
+        <skipITs>true</skipITs>
+        <skip.karaf.featureTest>true</skip.karaf.featureTest>
+        <jacoco.skip>true</jacoco.skip>
+        <maven.javadoc.skip>true</maven.javadoc.skip>
+        <maven.source.skip>true</maven.source.skip>
+        <checkstyle.skip>true</checkstyle.skip>
+        <findbugs.skip>true</findbugs.skip>
+        <pmd.skip>true</pmd.skip>
+        <cpd.skip>true</cpd.skip>
+        <maven.site.skip>true</maven.site.skip>
+        <invoker.skip>true</invoker.skip>
+        <enforcer.skip>true</enforcer.skip>
+        <duplicate-finder.skip>true</duplicate-finder.skip>
+        <mdsal.skip.verbose>true</mdsal.skip.verbose> <!-- Bug 6236 -->
+        <maven.gitcommitid.skip>true</maven.gitcommitid.skip>
+        <modernizer.skip>true</modernizer.skip>
+      </properties>
     </profile>
     <profile>
       <!-- http://blog2.vorburger.ch/2016/06/maven-install-into-additional.html
         </plugins>
       </reporting>
     </profile>
-  </profiles>
-
+    <profile>
+      <!-- Javadocs with links -->
+      <id>javadoc-links</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <configuration combine.children="append">
+              <links>
+                <link>http://www.atetric.com/atetric/javadoc/junit/junit/4.11/</link>
+                <link>http://hamcrest.org/JavaHamcrest/javadoc/1.3/</link>
+                <link>http://google.github.io/truth/api/0.42/</link>
+                <link>https://www.slf4j.org/apidocs/</link>
+                <link>https://xerces.apache.org/xerces2-j/javadocs/api/</link>
+                <link>https://google.github.io/guava/releases/25.1-jre/api/docs/</link>
+                <link>http://doc.akka.io/japi/akka/2.5.14/</link>
+                <link>http://netty.io/4.1/api/</link>
+                <link>https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/</link>
+                <link>https://commons.apache.org/proper/commons-lang/javadocs/api-3.8/</link>
+                <link>https://commons.apache.org/proper/commons-codec/apidocs/</link>
+              </links>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
 
-  <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
+    <profile>
+      <!-- On JDK9-and-later specify html4 javadoc -->
+      <id>jdk9-javadoc</id>
+      <activation>
+        <jdk>[9,)</jdk>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <configuration combine.children="append">
+              <additionalOptions>
+                <additionalOption>-html4</additionalOption>
+              </additionalOptions>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 
   <distributionManagement>
     <repository>