<?xml version="1.0" encoding="UTF-8"?> <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"> <parent> <groupId>org.onap.oparent</groupId> <artifactId>oparent</artifactId> <version>3.1.0</version> <relativePath/> </parent> <modelVersion>4.0.0</modelVersion> <groupId>org.onap.cps</groupId> <artifactId>cps-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <properties> <app>org.onap.cps.Application</app> <base.image>openjdk:11-jre-slim</base.image> <java.version>11</java.version> <jib-maven-plugin.version>2.6.0</jib-maven-plugin.version> <minimum-coverage>0.9</minimum-coverage> <nexusproxy>https://nexus.onap.org</nexusproxy> <oparent.version>3.1.0</oparent.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <releaseNexusPath>/content/repositories/releases/</releaseNexusPath> <repository.name>nexus3.onap.org:10001/onap/cps-service</repository.name> <spotbugs-maven-plugin.version>4.1.3</spotbugs-maven-plugin.version> <spring-boot-maven-plugin.version>2.3.3.RELEASE</spring-boot-maven-plugin.version> <spotbugs.slf4j.version>1.8.0-beta4</spotbugs.slf4j.version> <spotbugs.bug-pattern.version>1.5.0</spotbugs.bug-pattern.version> <spotbugs.version>4.2.0</spotbugs.version> <swagger-codegen-maven-plugin.version>3.0.18</swagger-codegen-maven-plugin.version> <snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath> <tag.version>${project.version}</tag.version> <jacoco.reportDirectory.aggregate>${project.reporting.outputDirectory}/jacoco-aggregate</jacoco.reportDirectory.aggregate> <sonar.coverage.jacoco.xmlReportPaths> ../cps-ri/target/site/jacoco-ut/jacoco.xml, ../cps-ri/target/site/jacoco-aggregate/jacoco.xml, ../cps-service/target/site/jacoco-ut/jacoco.xml, ../cps-service/target/site/jacoco-aggregate/jacoco.xml, ../cps-rest/target/site/jacoco-ut/jacoco.xml, ../cps-rest/target/site/jacoco-aggregate/jacoco.xml, ../cps-nf-proxy-rest/target/site/jacoco-ut/jacoco.xml, ../cps-nf-proxy-rest/target/site/jacoco-aggregate/jacoco.xml, </sonar.coverage.jacoco.xmlReportPaths> </properties> <distributionManagement> <repository> <id>ecomp-releases</id> <name>ECOMP Release Repository</name> <url>${nexusproxy}${releaseNexusPath}</url> </repository> <snapshotRepository> <id>ecomp-snapshots</id> <name>ECOMP Snapshot Repository</name> <url>${nexusproxy}${snapshotNexusPath}</url> </snapshotRepository> </distributionManagement> <dependencyManagement> <dependencies> <dependency> <groupId>org.onap.cps</groupId> <artifactId>cps-dependencies</artifactId> <version>${project.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.onap.cps</groupId> <artifactId>cps-bom</artifactId> <version>${project.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> <resource> <directory>target/generated-sources/license</directory> <includes> <include>third-party-licenses.txt</include> </includes> </resource> <resource> <directory>target/generated-resources/licenses</directory> <includes> <include>*.*</include> </includes> <targetPath>third-party-licenses</targetPath> </resource> </resources> <pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot-maven-plugin.version}</version> <executions> <execution> <goals> <goal>build-info</goal> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <!-- Swagger code generation. --> <plugin> <groupId>io.swagger.codegen.v3</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>${swagger-codegen-maven-plugin.version}</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/docs/api/swagger/openapi.yml</inputSpec> <invokerPackage>org.onap.cps.rest.controller</invokerPackage> <modelPackage>org.onap.cps.rest.model</modelPackage> <apiPackage>org.onap.cps.rest.api</apiPackage> <language>spring</language> <generateSupportingFiles>false</generateSupportingFiles> <configOptions> <sourceFolder>src/gen/java</sourceFolder> <dateLibrary>java11</dateLibrary> <interfaceOnly>true</interfaceOnly> <useTags>true</useTags> </configOptions> </configuration> </execution> </executions> </plugin> <plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>${jib-maven-plugin.version}</version> <configuration> <container> <mainClass>${app}</mainClass> <creationTime>USE_CURRENT_TIMESTAMP</creationTime> </container> <from> <image>${base.image}</image> </from> <to> <image>${repository.name}</image> <tags> <tag>${tag.version}</tag> </tags> </to> </configuration> </plugin> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> <version>${spotbugs-maven-plugin.version}</version> <dependencies> <dependency> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs</artifactId> <version>${spotbugs.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>spotbugs</artifactId> <version>${project.version}</version> </dependency> <dependency> <!-- The SpotBugs Maven plugin uses SLF4J 1.8 beta 2 --> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>${spotbugs.slf4j.version}</version> </dependency> </dependencies> <configuration> <plugins> <plugin> <groupId>jp.skypencil.findbugs.slf4j</groupId> <artifactId>bug-pattern</artifactId> <version>1.5.0</version> </plugin> </plugins> <!-- Enables analysis which takes more memory but finds more bugs. If you run out of memory, changes the value of the effort element to 'Low'. --> <effort>Max</effort> <!-- Reports all bugs (other values are medium and max) --> <threshold>Low</threshold> <!-- Build doesn't fail if problems are found --> <failOnError>true</failOnError> <!-- References the excluded rules --> <excludeFilterFile>spotbugs-exclude.xml</excludeFilterFile> <!-- Produces XML report --> <xmlOutput>true</xmlOutput> <!-- Configures the directory in which the XML report is created --> <xmlOutputDirectory>${project.build.directory}/spotbugs</xmlOutputDirectory> </configuration> <executions> <!-- Ensures that SpotBugs inspects source code when project is compiled. --> <execution> <id>analyze-compile</id> <phase>compile</phase> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <executions> <execution> <id>onap-license</id> <goals> <goal>check</goal> </goals> <phase>process-sources</phase> <configuration> <configLocation>onap-checkstyle/check-license.xml</configLocation> <includeResources>false</includeResources> <includeTestSourceDirectory>true</includeTestSourceDirectory> <includeTestResources>false</includeTestResources> <sourceDirectories> <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory> </sourceDirectories> <consoleOutput>false</consoleOutput> <violationSeverity>warning</violationSeverity> <failOnViolation>true</failOnViolation> </configuration> </execution> <execution> <id>onap-java-style</id> <goals> <goal>check</goal> </goals> <phase>process-sources</phase> <configuration> <configLocation>onap-checkstyle/onap-java-style.xml</configLocation> <sourceDirectories> <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory> </sourceDirectories> <includeResources>true</includeResources> <includeTestSourceDirectory>true</includeTestSourceDirectory> <includeTestResources>true</includeTestResources> <consoleOutput>false</consoleOutput> <violationSeverity>warning</violationSeverity> <failOnViolation>true</failOnViolation> </configuration> </execution> <execution> <id>cps-java-style</id> <goals> <goal>check</goal> </goals> <phase>process-sources</phase> <configuration> <configLocation>cps-java-style.xml</configLocation> <sourceDirectories> <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory> </sourceDirectories> <includeResources>true</includeResources> <includeTestSourceDirectory>true</includeTestSourceDirectory> <includeTestResources>true</includeTestResources> <consoleOutput>true</consoleOutput> <violationSeverity>warning</violationSeverity> <failOnViolation>true</failOnViolation> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.onap.oparent</groupId> <artifactId>checkstyle</artifactId> <version>${oparent.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>checkstyle</artifactId> <version>${project.version}</version> </dependency> </dependencies> </plugin> <!-- Mandatory plugins for using Spock --> <plugin> <!-- The gmavenplus plugin is used to compile Groovy code. To learn more about this plugin, visit https://github.com/groovy/GMavenPlus/wiki --> <groupId>org.codehaus.gmavenplus</groupId> <artifactId>gmavenplus-plugin</artifactId> <version>1.9.0</version> <executions> <execution> <goals> <goal>compileTests</goal> </goals> </execution> </executions> </plugin> <!-- Required because names of spec classes don't match default Surefire patterns (`*Test` etc.) --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!--suppress UnresolvedMavenProperty --> <argLine>${surefireArgLine}</argLine> <useFile>false</useFile> <includes> <include>**/*Spec.java</include> <include>**/*Test.java</include> <!-- Just in case of having also "normal" JUnit tests --> </includes> <excludes> <exclude>**/IT*.java</exclude> </excludes> <environmentVariables> <!-- disable privileged container usage to cleanup the test containers; these will be removed automatically on jvm termination; see https://www.testcontainers.org/features/configuration/#disabling-ryuk --> <TESTCONTAINERS_RYUK_DISABLED>true</TESTCONTAINERS_RYUK_DISABLED> </environmentVariables> </configuration> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <executions> <execution> <id>default-prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>coverage-check</id> <goals> <goal>check</goal> </goals> <configuration> <excludes> <exclude>org/onap/cps/rest/model/*</exclude> </excludes> <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile> <rules> <rule> <element>BUNDLE</element> <limits> <limit> <counter>INSTRUCTION</counter> <value>COVEREDRATIO</value> <minimum>${minimum-coverage}</minimum> </limit> </limits> </rule> </rules> </configuration> </execution> <execution> <id>report</id> <goals> <goal>report-aggregate</goal> </goals> <phase>verify</phase> <configuration> <dataFileIncludes> <fileInclude>**/code-coverage/jacoco-ut.exec</fileInclude> </dataFileIncludes> </configuration> </execution> </executions> </plugin> <plugin> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> </plugin> </plugins> </build> </project>