Bump scala to 2.11.12
[odlparent.git] / odlparent-lite / pom.xml
index a5dc9adc18287fca98e0f4488194192ca6196a63..ccd6758117b214960a34fec915820912be8dd2f0 100644 (file)
 
   <groupId>org.opendaylight.odlparent</groupId>
   <artifactId>odlparent-lite</artifactId>
-  <version>1.6.0-SNAPSHOT</version>
+  <version>1.8.4-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>
-      <url>http://www.eclipse.org/legal/epl-v10.html</url>
+      <url>https://www.eclipse.org/legal/epl-v10.html</url>
     </license>
   </licenses>
 
   <organization>
     <name>OpenDaylight</name>
-    <url>http://www.opendaylight.org</url>
+    <url>https://www.opendaylight.org</url>
   </organization>
 
+  <issueManagement>
+    <system>Bugzilla</system>
+    <url>https://bugs.opendaylight.org/</url>
+  </issueManagement>
+
+  <ciManagement>
+    <system>Jenkins</system>
+    <url>https://jenkins.opendaylight.org/releng/</url>
+  </ciManagement>
+
+  <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>
+
+  <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>
+
   <properties>
-    <nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>
-    <nexus.site.url>./</nexus.site.url>
+    <nexusproxy>https://nexus.opendaylight.org/content</nexusproxy>
+
+    <!-- Variables required for Maven Site generation -->
+    <nexus.site.url>file:${user.dir}/target/staged-site</nexus.site.url>
+    <odl.site.url>https://nexus.opendaylight.org/content/sites/site/</odl.site.url>
+    <stream>latest</stream><!-- CI should pass in -Dstream={stream} -->
 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+    <!-- This property is used in the pluginManagement and the q profile as well as -D set e.g. in releng/builder by c/53426
+         to emulate a future "maven.gitcommitid.skip", which only a future not-yet-available-on-Maven-central maven-git-commit-id-plugin release has.
+         (If we ever upgrade the version of the maven-git-commit-id-plugin we use, then this and re. pluginManagement config could be removed; BUT then
+          the q profile and all -D in releng/builder etc. else would have to be changed from this "gitid.skip" to "maven.gitcommitid.skip.)
+      -->
+    <gitid.skip>false</gitid.skip>
   </properties>
 
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <artifactId>maven-clean-plugin</artifactId>
+          <version>3.0.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-deploy-plugin</artifactId>
+          <version>2.8.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-help-plugin</artifactId>
+          <version>2.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-install-plugin</artifactId>
+          <version>2.5.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-javadoc-plugin</artifactId>
+          <version>2.10.4</version>
+          <configuration>
+            <!-- Keep things quiet except for warnings/errors -->
+            <quiet>true</quiet>
+            <tags>
+              <!-- support for HelpMojo generated by the maven-plugin-plugin -->
+              <tag>
+                <name>goal</name>
+                <placement>t</placement>
+                <head>Goal:</head>
+              </tag>
+              <tag>
+                <name>requiresProject</name>
+                <placement>t</placement>
+                <head>Requires project:</head>
+              </tag>
+              <tag>
+                <name>threadSafe</name>
+                <placement>t</placement>
+                <head>Threadsafe</head>
+              </tag>
+              <tag>
+                <name>phase</name>
+                <placement>t</placement>
+                <head>Phase:</head>
+              </tag>
+              <!-- end HelpMojo support -->
+            </tags>
+          </configuration>
+          <executions>
+            <execution>
+              <id>attach-javadocs</id>
+              <goals>
+                <goal>jar</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <artifactId>maven-project-info-reports-plugin</artifactId>
+          <version>2.9</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>2.5.3</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-site-plugin</artifactId>
+          <version>3.6</version>
+          <configuration>
+            <asciidoc>
+              <attributes>
+                <imagesdir>./images</imagesdir>
+                <imagesoutdir>${project.build.directory}/site/images</imagesoutdir>
+                <icons>font</icons>
+                <source-highlighter>coderay</source-highlighter>
+                <coderay-css>style</coderay-css>
+              </attributes>
+              <requires>
+                <require>asciidoctor-diagram</require>
+              </requires>
+            </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>
+            </dependency>
+            <dependency>
+              <groupId>org.asciidoctor</groupId>
+              <artifactId>asciidoctorj-diagram</artifactId>
+              <version>1.3.1</version>
+            </dependency>
+
+            <!-- Needed for JDK-9 compatibility -->
+            <dependency>
+              <groupId>commons-lang</groupId>
+              <artifactId>commons-lang</artifactId>
+              <version>2.6</version>
+            </dependency>
+          </dependencies>
+        </plugin>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>exec-maven-plugin</artifactId>
+          <version>1.5.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>jdepend-maven-plugin</artifactId>
+          <version>2.0</version>
+          <executions>
+            <execution>
+              <phase>site</phase>
+              <goals>
+                <goal>generate-no-fork</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <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>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <versionRange>[2.10,)</versionRange>
+                    <goals>
+                      <goal>unpack</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <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>
+      </plugins>
+    </pluginManagement>
+
+    <plugins>
+      <plugin>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <version>1.4.1</version>
+        <executions>
+          <execution>
+            <id>enforce-maven</id>
+            <configuration>
+              <rules>
+                <requireJavaVersion>
+                  <version>1.8.0</version>
+                </requireJavaVersion>
+                <requireMavenVersion>
+                  <version>[3.3.9,)</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.1</version>
+        <executions>
+          <execution>
+            <id>get-git-infos</id>
+            <goals>
+              <goal>revision</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <skip>${gitid.skip}</skip>
+          <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 ;)
+
+             The Quick profile is used during incremental local development, when you want to "just get that JAR built",
+             which is very handy e.g. for fast hot reloading cycles in Karaf with bundle watch.  It (intentionally!) skips
+             tests, quality checks etc. which are great and useful to run before finally submitting changes to Gerrit, and
+             which all must run on Gerrit, but which are overhead during ongoing fast iterative local development.
+
+             Note that the idea here is that your IDE will already have run quality checks such as e.g. Checkstyle
+             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>
+            <!-- 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>
+            <skip.karaf4.featureTest>true</skip.karaf4.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>
+            <mdsal.skip.verbose>true</mdsal.skip.verbose> <!-- Bug 6236 -->
+            <gitid.skip>true</gitid.skip>
+        </properties>
+    </profile>
+    <profile>
+      <!-- http://blog2.vorburger.ch/2016/06/maven-install-into-additional.html
+           mvn [-o -Pq] install -DaddInstallRepositoryPath=.../karaf/system is used in development to directly
+           install artifacts such as bundles and KARs not just into the global shared ~/.m2/repository
+           but also into the isolated Maven repo of a Karaf distribution.
+       -->
+      <activation>
+        <property>
+          <name>addInstallRepositoryPath</name>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-install-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>additional-install</id>
+                <phase>install</phase>
+                <goals>
+                  <goal>install-file</goal>
+                </goals>
+                <configuration>
+                  <file>${project.build.directory}/${project.build.finalName}.jar</file>
+                  <localRepositoryPath>${addInstallRepositoryPath}</localRepositoryPath>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <!--
+          This profile is to ensure we only build javadocs reports
+          when we plan to deploy Maven site for our project.
+
+          It activates by checking for the existance of deploy-site.xml in the
+          user's current working directory. (Intent is that this is run from
+          the Project root directory)
+      -->
+      <id>maven-site</id>
+      <activation>
+        <file>
+          <exists>${user.dir}/deploy-site.xml</exists>
+        </file>
+      </activation>
+
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-site-plugin</artifactId>
+
+            <executions>
+              <execution>
+                <id>generate-site</id>
+                <phase>install</phase>
+                <goals>
+                  <goal>site</goal>
+                  <goal>attach-descriptor</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+
+      <reporting>
+        <plugins>
+          <plugin>
+            <artifactId>maven-project-info-reports-plugin</artifactId>
+            <configuration>
+              <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
+            </configuration>
+            <reportSets>
+              <reportSet>
+                <reports>
+                  <report>index</report>
+                </reports>
+              </reportSet>
+            </reportSets>
+          </plugin>
+          <plugin>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <reportSets>
+              <reportSet>
+                <reports>
+                  <report>javadoc-no-fork</report>
+                  <report>test-javadoc-no-fork</report>
+                </reports>
+              </reportSet>
+            </reportSets>
+          </plugin>
+        </plugins>
+      </reporting>
+    </profile>
+  </profiles>
+
   <distributionManagement>
     <repository>
       <id>opendaylight-release</id>
     </snapshotRepository>
     <site>
       <id>opendaylight-site</id>
-      <url>${nexus.site.url}</url>
+      <url>${nexus.site.url}/${project.artifactId}/</url>
     </site>
   </distributionManagement>
 </project>