<?xml version="1.0" encoding="UTF-8"?> <!-- ============LICENSE_START======================================================= org.onap.aai ================================================================================ Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ============LICENSE_END========================================================= --> <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.onap.aai.resources</groupId> <artifactId>aai-resources</artifactId> <parent> <groupId>org.onap.aai.resources</groupId> <artifactId>resources</artifactId> <version>1.6.3</version> </parent> <properties> <java.version>1.8</java.version> <start-class>org.onap.aai.ResourcesApp</start-class> <!-- Start of the jacoco plugin properties --> <sonar.language>java</sonar.language> <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath> <sonar.jacoco.reportPath>${project.build.directory}/coverage-reports/jacoco.exec</sonar.jacoco.reportPath> <sonar.jacoco.reportMissing.force.zero>false</sonar.jacoco.reportMissing.force.zero> <sonar.projectVersion>${project.version}</sonar.projectVersion> <!-- End of the jacoco plugin properties --> <!-- inherit from parent <docker.fabric.version>0.28.0</docker.fabric.version> --> <!-- Default docker registry that maven fabric plugin will try to pull from --> <docker.registry>docker.io</docker.registry> <!-- Specifying the docker push registry where the image should be pushed --> <!-- This value should be overwritten at runtime to wherever need to be pushed to --> <docker.push.registry>localhost:5000</docker.push.registry> <aai.docker.version>1.0.0</aai.docker.version> <aai.base.image>alpine</aai.base.image> <aai.base.image.version>1.6.0</aai.base.image.version> <!-- Location where assembly of our scripts, resources and main jar will be held Check the ${project.artifactId}/src/main/assembly/descriptor.xml for more info --> <aai.build.directory>${project.build.directory}/${project.artifactId}-${project.version}-build/ </aai.build.directory> <aai.docker.namespace>onap</aai.docker.namespace> <maven.skip.tests>true</maven.skip.tests> <snapshot.file>${project.basedir}/snapshots/snapshot.graphson</snapshot.file> <jacoco.line.coverage.limit>0.68</jacoco.line.coverage.limit> <license.goal.type>check</license.goal.type> <!-- This will be used for the docker images as the default format of maven build has issues --> <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format> <!-- Start of Default ONAP Schema Properties --> <schema.source.name>onap</schema.source.name> <schema.configuration.location>N/A</schema.configuration.location> <schema.nodes.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/oxm</schema.nodes.location> <schema.edges.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/dbedgerules</schema.edges.location> <schema.version.depth.start>v10</schema.version.depth.start> <schema.version.related.link.start>v10</schema.version.related.link.start> <schema.version.app.root.start>v11</schema.version.app.root.start> <schema.version.namespace.change.start>v12</schema.version.namespace.change.start> <schema.version.edge.label.start>v12</schema.version.edge.label.start> <schema.version.api.default>v19</schema.version.api.default> <schema.version.list>v10,v11,v12,v13,v14,v15,v16,v17,v18,v19</schema.version.list> <schema.uri.base.path>/aai</schema.uri.base.path> <!-- <schema.translator.list>config</schema.translator.list> --> <schema.ingest.file>${project.basedir}/src/main/resources/application.properties</schema.ingest.file> <!-- End of Default ONAP Schema Properties --> <!-- Setting some default value to not complain by editor but it will be overridden by gmaven plugin --> </properties> <profiles> <!-- Docker profile to be used for building docker image and pushing to nexus --> <profile> <id>docker</id> <build> <plugins> <plugin> <groupId>org.codehaus.groovy.maven</groupId> <artifactId>gmaven-plugin</artifactId> <version>1.0</version> <executions> <execution> <phase>pre-clean</phase> </execution> <execution> <id>parse-base</id> <phase>prepare-package</phase> <goals> <goal>execute</goal> </goals> <configuration> <source> def userAaiBaseImage = session.userProperties['aai.base.image'] def userAaiCommonVersion = session.userProperties['aai.base.image.version'] if (userAaiCommonVersion != null) { project.properties['aai.base.image.version'] = userAaiCommonVersion } if (userAaiBaseImage != null) { project.properties['aai.base.image'] = userAaiBaseImage } log.info 'Base image flavour: ' + project.properties['aai.base.image'] log.info 'Base image version: ' + project.properties['aai.base.image.version'] </source> </configuration> </execution> </executions> </plugin> <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <configuration> <verbose>true</verbose> <apiVersion>1.23</apiVersion> <images> <image> <name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l </name> <build> <filter>@</filter> <tags> <tag>latest</tag> <tag>${project.docker.latesttag.version}</tag> <tag>${project.major.version}.${project.minor.version}-STAGING-${maven.build.timestamp}</tag> </tags> <cleanup>try</cleanup> <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir> <assembly> <inline> <fileSets> <fileSet> <directory>${aai.build.directory}</directory> <outputDirectory>/${project.artifactId}</outputDirectory> </fileSet> </fileSets> </inline> </assembly> </build> </image> </images> </configuration> <executions> <execution> <id>clean-images</id> <phase>pre-clean</phase> <goals> <goal>remove</goal> </goals> <configuration> <removeAll>true</removeAll> </configuration> </execution> <execution> <id>generate-images</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> <execution> <id>push-images</id> <phase>deploy</phase> <goals> <goal>push</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- Start of ONAP Profile --> <profile> <id>onap</id> <properties> <schema.source.name>onap</schema.source.name> <schema.version.namespace.change.start>v12</schema.version.namespace.change.start> <schema.version.list>v10,v11,v12,v13,v14,v15,v16</schema.version.list> <schema.ingest.file>${project.basedir}/src/main/resources/application.properties</schema.ingest.file> </properties> </profile> <!-- End of ONAP Profile --> <profile> <id>runAjsc</id> <properties> <skipTests>${maven.skip.tests}</skipTests> </properties> <build> <defaultGoal>pre-integration-test</defaultGoal> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> <executions> <execution> <id>run-spring-boot</id> <phase>package</phase> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>${start-class}</mainClass> <systemProperties> <property> <key>snapshot.location</key> <value>${snapshot.file}</value> </property> <property> <key>schema.source.name</key> <value>${schema.source.name}</value> </property> <property> <key>schema.configuration.location</key> <value>${schema.configuration.location}</value> </property> <property> <key>schema.nodes.location</key> <value>${schema.nodes.location}</value> </property> <property> <key>schema.edges.location</key> <value>${schema.edges.location}</value> </property> <property> <key>schema.version.depth.start</key> <value>${schema.version.depth.start}</value> </property> <property> <key>schema.version.related.link.start</key> <value>${schema.version.related.link.start}</value> </property> <property> <key>schema.version.app.root.start</key> <value>${schema.version.app.root.start}</value> </property> <property> <key>schema.version.namespace.change.start</key> <value>${schema.version.namespace.change.start}</value> </property> <property> <key>schema.version.edge.label.start</key> <value>${schema.version.edge.label.start}</value> </property> <property> <key>schema.version.api.default</key> <value>${schema.version.api.default}</value> </property> <property> <key>schema.version.list</key> <value>${schema.version.list}</value> </property> <property> <key>schema.uri.base.path</key> <value>${schema.uri.base.path}</value> </property> <property> <key>schema.ingest.file</key> <value>${schema.ingest.file}</value> </property> </systemProperties> <executable>java</executable> </configuration> </plugin> </plugins> </build> </profile> </profiles> <dependencies> <dependency> <groupId>net.sf.jopt-simple</groupId> <artifactId>jopt-simple</artifactId> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-core</artifactId> <exclusions> <exclusion> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> </dependency> <dependency> <groupId>commons-configuration</groupId> <artifactId>commons-configuration</artifactId> <exclusions> <exclusion> <artifactId>commons-lang</artifactId> <groupId>commons-lang</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-jersey-jaxrs</artifactId> <exclusions> <exclusion> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-multipart</artifactId> </exclusion> <exclusion> <artifactId>jersey-core</artifactId> <groupId>com.sun.jersey</groupId> </exclusion> <exclusion> <artifactId>jersey-json</artifactId> <groupId>com.sun.jersey</groupId> </exclusion> <exclusion> <artifactId>jersey-server</artifactId> <groupId>com.sun.jersey</groupId> </exclusion> <exclusion> <artifactId>jersey-client</artifactId> <groupId>com.sun.jersey</groupId> </exclusion> <exclusion> <artifactId>jsr311-api</artifactId> <groupId>javax.ws.rs</groupId> </exclusion> <exclusion> <artifactId>jersey-multipart</artifactId> <groupId>com.sun.jersey.contribs</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> </dependency> <!-- eelf dependency --> <dependency> <groupId>com.att.eelf</groupId> <artifactId>eelf-core</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-access</artifactId> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-junit</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> <dependency> <groupId>org.janusgraph</groupId> <artifactId>janusgraph-core</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.janusgraph</groupId> <artifactId>janusgraph-cassandra</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> </exclusion> </exclusions> </dependency> <!-- indirect janusgraph-cassandra dependency need to be newer than default one in order to support multiple cpu archs --> <dependency> <groupId>com.github.jnr</groupId> <artifactId>jnr-ffi</artifactId> </dependency> <dependency> <groupId>org.janusgraph</groupId> <artifactId>janusgraph-cql</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.beust</groupId> <artifactId>jcommander</artifactId> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> </dependency> <dependency> <groupId>org.onap.aaf.authz</groupId> <artifactId>aaf-cadi-aaf</artifactId> </dependency> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>eclipselink</artifactId> </dependency> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>org.eclipse.persistence.moxy</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>com.github.fge</groupId> <artifactId>json-patch</artifactId> </dependency> <dependency> <groupId>org.javatuples</groupId> <artifactId>javatuples</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency> <dependency> <groupId>org.onap.dmaap.messagerouter.dmaapclient</groupId> <artifactId>dmaapClient</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>com.att.aft</groupId> <artifactId>dme2</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.jayway.jsonpath</groupId> <artifactId>json-path</artifactId> </dependency> <!-- Do not use activemq-all because they force you to use a specific logging and they shade it so you can't simply exclude it and when you deploy the jar, you will notice failure --> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-broker</artifactId> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-client</artifactId> </dependency> <dependency> <groupId>org.onap.aai.aai-common</groupId> <artifactId>aai-core</artifactId> <exclusions> <exclusion> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> </exclusion> <exclusion> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> </exclusion> <exclusion> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-http</artifactId> </exclusion> <exclusion> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.onap.aai.aai-common</groupId> <artifactId>aai-schema-ingest</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <exclusions> <exclusion> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> </exclusion> </exclusions> </dependency> <!-- Do not use the jersey-client since jersey client 1.0 version clashes with jersey 2 which we are using --> <!-- Use this to make http requests instead of jersey 1.0 client --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency> <dependency> <groupId>org.skyscreamer</groupId> <artifactId>jsonassert</artifactId> <scope>test</scope> </dependency> <!-- Explicitly stating the security spring framework and exclude the bouncy castle since that is somehow overwriting our p12 file decryption that's built into java security This will cause the password is incorrect This needs to be added back if org.bouncy castle dependency sneaks backs in and causing issues with the two way ssl --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-rsa</artifactId> <exclusions> <exclusion> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk15on</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-handler</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jersey</artifactId> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy</artifactId> <classifier>indy</classifier> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.tinkerpop</groupId> <artifactId>gremlin-groovy</artifactId> </dependency> </dependencies> <build> <resources> <resource> <directory>${project.basedir}/src/main/swm</directory> <targetPath>${project.build.directory}/swm</targetPath> <filtering>false</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources</directory> <includes> <include>application.properties</include> <include>dme2.properties</include> <include>logback.xml</include> <include>localhost-access-logback.xml</include> </includes> <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath> <filtering>false</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources</directory> <includes> <include>**/*</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources/etc/appprops/</directory> <includes> <include>janusgraph-realtime.properties</include> <include>janusgraph-cached.properties</include> <include>aaiconfig.properties</include> </includes> <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath> <filtering>false</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources/etc/auth/</directory> <includes> <include>aai-client-cert.p12</include> <include>tomcat_keystore</include> <include>aai_policy.json</include> </includes> <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath> <filtering>true</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources/</directory> <includes> <include>logback.xml</include> <include>localhost-access-logback.xml</include> <include>hbase-site.xml</include> </includes> <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath> <filtering>true</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources/schema/</directory> <includes> <include>**/oxm/**/*.xml</include> <include>**/dbedgerules/**/*.json</include> </includes> <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig/schema</targetPath> <filtering>false</filtering> </resource> <resource> <directory>${project.basedir}/src/main/docker</directory> <includes> <include>**/*</include> </includes> <targetPath>${aai.build.directory}</targetPath> <filtering>true</filtering> </resource> <resource> <directory>${project.build.directory}/</directory> <includes> <include>${project.artifactId}-${project.version}.jar</include> </includes> <targetPath>${aai.build.directory}/lib/</targetPath> <filtering>false</filtering> </resource> </resources> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> <executions> <execution> <id>unpack-schema-dependency</id> <phase>initialize</phase> <goals> <goal>unpack</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>org.onap.aai.schema-service</groupId> <artifactId>aai-schema</artifactId> <outputDirectory>${project.basedir}/src/main/resources/schema/</outputDirectory> <includes>**/oxm/**/*.xml</includes> </artifactItem> </artifactItems> <!-- other configurations here --> </configuration> </execution> <execution> <id>unpack-edgerules-dependency</id> <phase>initialize</phase> <goals> <goal>unpack</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>org.onap.aai.schema-service</groupId> <artifactId>aai-schema</artifactId> <outputDirectory>${project.basedir}/src/main/resources/schema/</outputDirectory> <includes>**/dbedgerules/**/*.json</includes> </artifactItem> </artifactItems> <!-- other configurations here --> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.groovy.maven</groupId> <artifactId>gmaven-plugin</artifactId> <version>1.0</version> <executions> <execution> <phase>validate</phase> <goals> <goal>execute</goal> </goals> <configuration> <source> println project.properties['aai.project.version']; def versionArray; if (project.properties['aai.project.version'] != null) { versionArray = project.properties['aai.project.version'].split('\\.'); } project.properties["project.major.version"] = versionArray[0]; project.properties["project.minor.version"] = versionArray[1]; project.properties['project.docker.latesttag.version'] = versionArray[0] + '.' + versionArray[1] + '-STAGING-latest'; println 'New Tag for docker:' + project.properties['project.docker.latesttag.version']; </source> </configuration> </execution> </executions> </plugin> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <version>3.0</version> <configuration> <header>LICENSE.TXT</header> <includes> <include>src/main/java/**</include> <include>src/test/java/**</include> <include>pom.xml</include> </includes> <skipExistingHeaders>false</skipExistingHeaders> <skip>false</skip> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>2.4.1</version> <configuration> <filesets> <fileset> <directory>${project.basedir}/src/main/resources/schema</directory> <includes> <include>**/*</include> </includes> <followSymlinks>false</followSymlinks> </fileset> </filesets> </configuration> </plugin> <plugin> <groupId>org.codehaus.groovy.maven</groupId> <artifactId>gmaven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptors> <descriptor>src/main/assembly/descriptor.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <!-- this is used for inheritance merges --> <phase>package</phase> <!-- bind to the packaging phase --> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12.4</version> <configuration> <argLine>-noverify ${argLine}</argLine> <runOrder>alphabetical</runOrder> </configuration> </plugin> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.3</version> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.9</version> <configuration> <dumpOnExit>true</dumpOnExit> <excludes> <exclude>**/**/models/**/*.class</exclude> </excludes> </configuration> <executions> <execution> <id>jacoco-initialize-unit-tests</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile> <!-- <append>true</append> --> </configuration> </execution> <execution> <id>post-unit-test</id> <phase>test</phase> <goals> <goal>report</goal> </goals> <configuration> <!-- Sets the path to the file which contains the execution data. --> <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile> <!-- Sets the output directory for the code coverage report. --> <outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory> </configuration> </execution> <execution> <id>default-check</id> <goals> <goal>check</goal> </goals> <configuration> <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile> <rules> <!-- implementation is needed only for Maven 2 --> <rule implementation="org.jacoco.maven.RuleConfiguration"> <element>BUNDLE</element> <limits> <limit implementation="org.jacoco.report.check.Limit"> <counter>LINE</counter> <value>COVEREDRATIO</value> <minimum>${jacoco.line.coverage.limit}</minimum> </limit> </limits> </rule> </rules> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>${start-class}</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.10.4</version> <configuration> <failOnError>false</failOnError> <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet> <docletArtifact> <groupId>org.umlgraph</groupId> <artifactId>umlgraph</artifactId> <version>5.6</version> </docletArtifact> <additionalparam>-views</additionalparam> <useStandardDocletOptions>true</useStandardDocletOptions> </configuration> </plugin> </plugins> </reporting> </project>