<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright (c) 2016-2017 Huawei Technologies Co., Ltd.
+ 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.
-->
<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>
- <parent>
- <groupId>org.onap.oparent</groupId>
- <artifactId>version</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <relativePath>version</relativePath>
- </parent>
<name>oparent</name>
- <artifactId>oparent</artifactId>
+ <groupId>org.onap.oparent</groupId>
+ <artifactId>version</artifactId>
+ <version>3.3.2-SNAPSHOT</version>
<packaging>pom</packaging>
- <scm>
- <connection>scm:git:ssh://git.onap.org:29418/oparent.git</connection>
- <developerConnection>scm:git:ssh://git.onap.org:29418/oparent.git</developerConnection>
- <tag>HEAD</tag>
- <url>https://wiki.onap.org/display/DW/Integration+Project</url>
- </scm>
<modules>
<!-- oparent tools -->
- <module>version</module>
<module>checkstyle</module>
<module>license</module>
+ <module>oparent</module>
+ <module>oparent-python</module>
+ <module>dependencies</module>
+ <module>dependencies-clm</module>
</modules>
<properties>
- <jacoco.version>0.7.7.201606060606</jacoco.version>
- <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
- <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
- <!-- Default Sonar configuration -->
- <sonar.jacoco.reportPath>target/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPath>
- <sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
- <!-- Note: This list should match jacoco-maven-plugin's exclusion list below -->
- <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <!-- 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>
+ <id>ecomp-releases</id>
+ <url>${onap.nexus.url}/content/repositories/releases</url>
+ </repository>
+ <snapshotRepository>
+ <id>ecomp-snapshots</id>
+ <url>${onap.nexus.url}/content/repositories/snapshots</url>
+ </snapshotRepository>
+ </distributionManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>2.17</version>
+ <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>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <!-- This version supports the "deployAtEnd" parameter -->
+ <version>2.8</version>
+ <configuration>
+ <skip/>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>3.6</version>
<dependencies>
<dependency>
- <groupId>org.onap.oparent</groupId>
- <artifactId>checkstyle</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.onap.oparent</groupId>
- <artifactId>onap-license</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-webdav-jackrabbit</artifactId>
+ <version>3.4.3</version>
</dependency>
</dependencies>
- <configuration>
- <!-- Use Google Java Style Guide:
- https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml
- with minor changes -->
- <configLocation>onap-java-style.xml</configLocation>
- <!-- <sourceDirectory> is needed so that checkstyle ignores the
- generated sources directory -->
- <sourceDirectory>${project.build.sourceDirectory}/src/main/java</sourceDirectory>
- <includeResources>true</includeResources>
- <includeTestSourceDirectory>true</includeTestSourceDirectory>
- <includeTestResources>true</includeTestResources>
- <excludes>
- </excludes>
- <failsOnError>false</failsOnError>
- <consoleOutput>true</consoleOutput>
- </configuration>
- <executions>
- <execution>
- <id>check-license</id>
- <goals>
- <goal>check</goal>
- </goals>
- <phase>process-sources</phase>
- <configuration>
- <configLocation>check-license.xml</configLocation>
- <headerLocation>apache-license-2.regexp.txt</headerLocation>
- <includeResources>false</includeResources>
- <includeTestSourceDirectory>true</includeTestSourceDirectory>
- <includeTestResources>false</includeTestResources>
- <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
- <excludes>
- </excludes>
- <failsOnError>false</failsOnError>
- <consoleOutput>true</consoleOutput>
- </configuration>
- </execution>
- <execution>
- <id>check-style</id>
- <goals>
- <goal>check</goal>
- </goals>
- <phase>process-sources</phase>
- </execution>
- </executions>
</plugin>
<plugin>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- <version>${jacoco.version}</version>
- <configuration>
- <!-- Note: This exclusion list should match <sonar.exclusions>
- property above -->
- <excludes>
- <exclude>**/gen/**</exclude>
- <exclude>**/generated-sources/**</exclude>
- <exclude>**/yang-gen/**</exclude>
- <exclude>**/pax/**</exclude>
- </excludes>
- </configuration>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>3.0.0-M2</version>
<executions>
- <!--
- Prepares the property pointing to the JaCoCo runtime agent which
- is passed as VM argument when Maven the Surefire plugin is executed.
- -->
<execution>
- <id>pre-unit-test</id>
+ <id>enforce-property</id>
<goals>
- <goal>prepare-agent</goal>
+ <goal>enforce</goal>
</goals>
<configuration>
- <!-- Sets the path to the file which contains the execution data. -->
- <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile>
- <!--
- Sets the name of the property containing the settings
- for JaCoCo runtime agent.
- -->
- <propertyName>surefireArgLine</propertyName>
+ <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>
- <!--
- Ensures that the code coverage report for unit tests is created after
- unit tests have been run.
- -->
<execution>
- <id>post-unit-test</id>
- <phase>test</phase>
+ <id>enforce-no-snapshots</id>
<goals>
- <goal>report</goal>
+ <goal>enforce</goal>
</goals>
<configuration>
- <!-- Sets the path to the file which contains the execution data. -->
- <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
- <!-- Sets the output directory for the code coverage report. -->
- <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
- </configuration>
- </execution>
- <execution>
- <id>pre-integration-test</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>prepare-agent</goal>
- </goals>
- <configuration>
- <!-- Sets the path to the file which contains the execution data. -->
- <destFile>${project.build.directory}/code-coverage/jacoco-it.exec</destFile>
- <!--
- Sets the name of the property containing the settings
- for JaCoCo runtime agent.
- -->
- <propertyName>failsafeArgLine</propertyName>
- </configuration>
- </execution>
- <!--
- Ensures that the code coverage report for integration tests after
- integration tests have been run.
- -->
- <execution>
- <id>post-integration-test</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>report</goal>
- </goals>
- <configuration>
- <!-- Sets the path to the file which contains the execution data. -->
- <dataFile>${project.build.directory}/code-coverage/jacoco-it.exec</dataFile>
- <!-- Sets the output directory for the code coverage report. -->
- <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
+ <rules>
+ <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.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.19.1</version>
- <configuration>
- <!-- Sets the VM argument line used when unit tests are run. -->
- <argLine>${surefireArgLine}</argLine>
- <!-- Excludes integration tests when unit tests are run. -->
- <excludes>
- <exclude>**/IT*.java</exclude>
- </excludes>
- </configuration>
+ <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>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
- <version>2.19.1</version>
- <executions>
- <!--
- Ensures that both integration-test and verify goals of the Failsafe Maven
- plugin are executed.
- -->
- <execution>
- <id>integration-tests</id>
- <goals>
- <goal>integration-test</goal>
- <goal>verify</goal>
- </goals>
- <configuration>
- <!-- Sets the VM argument line used when integration tests are run. -->
- <argLine>${failsafeArgLine}</argLine>
- </configuration>
- </execution>
- </executions>
+ <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>
- <!-- https://mvnrepository.com/artifact/org.sonarsource.scanner.maven/sonar-maven-plugin -->
- <plugin>
- <groupId>org.sonarsource.scanner.maven</groupId>
- <artifactId>sonar-maven-plugin</artifactId>
- <version>3.3.0.603</version>
- </plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
- <artifactId>maven-checkstyle-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.12</version>
- </plugin>
- <!-- Jacoco / Sonar -->
- <plugin>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
+ <artifactId>maven-site-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
+ <artifactId>maven-enforcer-plugin</artifactId>
</plugin>
</plugins>
</build>