maven-parentpom
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>fr.ebruno.maven.poms</groupId> <artifactId>maven-parentpom</artifactId> <version>0.1.19</version> </dependency>
<?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 https://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- The Basics --> <groupId>fr.ebruno.maven.poms</groupId> <artifactId>maven-parentpom</artifactId> <version>0.1.19</version> <packaging>pom</packaging> <properties> <!-- These two properties should be override in subprojects --> <github.account>ebpro</github.account> <app.main.class /> <!-- GitHub server corresponds to entry in ~/.m2/settings.xml --> <github.global.server>github</github.global.server> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- Java version --> <java.version>21</java.version> <maven.compiler.release>${java.version}</maven.compiler.release> <maven.version>3.9.8</maven.version> <!-- still needed for sonar --> <maven.compiler.source>${maven.compiler.release}</maven.compiler.source> <maven.compiler.target>${maven.compiler.release}</maven.compiler.target> <!-- Test --> <junit.version>5.10.3</junit.version> <hamcrest.version>3.0</hamcrest.version> <mockito.version>5.12.0</mockito.version> <arquillian.version>1.9.1.Final</arquillian.version> <version.arquillian_cube>1.18.2</version.arquillian_cube> <jsonassert.version>1.5.3</jsonassert.version> <awaitility.version>4.2.2</awaitility.version> <rest-assured.version>5.5.0</rest-assured.version> <testcontainers.version>1.20.1</testcontainers.version> <assertj.version>3.26.3</assertj.version> <!-- Persistence --> <jakarta.persistence.version>3.2.0</jakarta.persistence.version> <eclipselink.version>4.0.4</eclipselink.version> <hibernate.version>6.6.0.Final</hibernate.version> <!-- Utils --> <lombok.version>1.18.34</lombok.version> <eclipsecollections.version>11.1.0</eclipsecollections.version> <throwing-function.version>1.5.1</throwing-function.version> <!-- Log --> <sl4j.version>2.0.16</sl4j.version> <logback.version>1.5.6</logback.version> <!-- Databases --> <h2.version>2.3.232</h2.version> <postgresql.version>42.7.3</postgresql.version> <mysql.version>8.0.33</mysql.version> <!-- JSON --> <jackson.version>2.17.2</jackson.version> <!-- XML --> <jaxb.version>4.0.2</jaxb.version> <jaxbimpl.version>4.0.5</jaxbimpl.version> <!-- REST - JAXRS --> <jaxrs.version>4.0.0</jaxrs.version> <jersey.version>3.1.8</jersey.version> <jersey-client.version>3.1.8</jersey-client.version> <jjwt.version>0.12.6</jjwt.version> <!-- WebSocket --> <tyrus.version>2.2.0</tyrus.version> <!-- Reproducibility --> <!-- see https://maven.apache.org/guides/mini/guide-reproducible-builds --> <project.build.outputTimestamp>1723828382</project.build.outputTimestamp> <!-- Java Module (Jigsaw) Name --> <project.module>${project.groupId}.${project.artifactId}</project.module> <!-- JEE --> <el.version>4.0.2</el.version> <beanvalidation.version>3.0.0</beanvalidation.version> <hibernate-validator.version>8.0.1.Final</hibernate-validator.version> <!-- Jakarta EE API 10 with Java 17 --> <jakarta.jakartaee-api.version>10.0.0</jakarta.jakartaee-api.version> <!-- Payara JEE server --> <payara.version>6.2023.11</payara.version> <arquillian-payara.version>3.0.alpha8</arquillian-payara.version> <maven-war-plugin.version>3.4.0</maven-war-plugin.version> <maven-ejb-plugin.version>3.2.1</maven-ejb-plugin.version> <maven-ear-plugin.version>3.3.0</maven-ear-plugin.version> <!-- JSF --> <primefaces.version>14.0.4</primefaces.version> <all-themes.version>1.0.11</all-themes.version> <!-- Code coverage --> <jacoco.version>0.8.10</jacoco.version> <!-- SonarQube --> <sonarqube.version>4.0.0.4121</sonarqube.version> <sonarqualitygate.version>1.3.0</sonarqualitygate.version> <!-- GPG Signing --> <simplify4usign.version>1.0.1</simplify4usign.version> <!-- Maven Plugins --> <mavencompiler.version>3.13.0</mavencompiler.version> <mavensource.version>3.3.1</mavensource.version> <mavenclean.version>3.4.0</mavenclean.version> <mavenjar.version>3.4.2</mavenjar.version> <mavenresource.version>3.3.1</mavenresource.version> <maveninstall.version>3.1.2</maveninstall.version> <mavenarchetype.version>3.2.1</mavenarchetype.version> <mavenjavadoc.version>3.5.0</mavenjavadoc.version> <mavendeploy.version>3.1.2</mavendeploy.version> <mavensurefire.version>3.3.1</mavensurefire.version> <mavensurefirereport.version>3.3.1</mavensurefirereport.version> <mavenfailsafe.version>3.3.1</mavenfailsafe.version> <mavensite.version>3.12.1</mavensite.version> <mavenexec.version>3.4.1</mavenexec.version> <mavenshade.version>3.6.0</mavenshade.version> <mavenassembly.version>3.7.1</mavenassembly.version> <mavenscm.version>3.3.0</mavenscm.version> <mavendependency.version>3.7.1</mavendependency.version> <mavenrelease.version>3.1.1</mavenrelease.version> <mavenhelper.version>3.6.0</mavenhelper.version> <mavenhelp.version>3.4.1</mavenhelp.version> <mavenversions.version>2.17.1</mavenversions.version> <mavenenforcer.version>3.5.0</mavenenforcer.version> <mavenflatten.version>1.6.0</mavenflatten.version> <maveninforeport.version>3.6.2</maveninforeport.version> <mavenjavadoc.version>3.8.0</mavenjavadoc.version> <!-- Release--> <nexusstaging.version>1.7.0</nexusstaging.version> <!-- Final app Packaging --> <mavengrallvm.version>0.9.26</mavengrallvm.version> <mavenjigsaw.version>1.1.3</mavenjigsaw.version> <!-- Continuous integration --> <gitflow-maven-plugin.version>1.21.0</gitflow-maven-plugin.version> <keytool-maven-plugin.version>1.7</keytool-maven-plugin.version> <testcontainers.postgresql.version>1.20.1</testcontainers.postgresql.version> <arquillian-weld-embedded.version>4.0.0.Final</arquillian-weld-embedded.version> <weld-se-core.version>5.1.2.Final</weld-se-core.version> <hibernate-entitymanager.version>5.6.15.Final</hibernate-entitymanager.version> <hibernate-c3p0.version>6.6.0.Final</hibernate-c3p0.version> <c3p0.version>0.10.1</c3p0.version> </properties> <!-- More Project Information --> <name>Parent POM</name> <description>A parent POM for Java CI projects</description> <url> https://${github.account}.github.io/${project.artifactId}/ </url> <inceptionYear>2020</inceptionYear> <licenses> <license> <name>MIT License</name> <url>https://opensource.org/licenses/MIT</url> <distribution>repo</distribution> </license> </licenses> <organization> <name>Université de Toulon</name> <url>https://www.univ-tln.fr</url> </organization> <developers> <developer> <id>emmanuelbruno</id> <name>Emmanuel Bruno</name> <email>emmanuel.bruno@univ-tln.fr</email> <url>https://bruno.univ-tln.fr</url> <organization>Université de Toulon</organization> <organizationUrl>https://www.univ-tln.fr</organizationUrl> <roles> <role>architect</role> <role>developer</role> </roles> <timezone>Europe/Paris</timezone> </developer> </developers> <!-- Environment Settings --> <issueManagement> <system>GitHub</system> <url>https://github.com/${github.account}/${project.artifactId}/issues</url> </issueManagement> <ciManagement> <system>Github Actions</system> <url>https://github.com/${github.account}/${project.artifactId}/actions</url> </ciManagement> <scm> <url>https://github.com/${github.account}/${project.artifactId}/tree/${project.scm.tag}</url> <connection>scm:git:git@github.com:${github.account}/${project.artifactId}.git</connection> <developerConnection>scm:git:git@github.com:${github.account}/${project.artifactId}.git</developerConnection> </scm> <distributionManagement> <site> <id>site</id> <url>file:///tmp/site/staging</url> </site> </distributionManagement> <!--distributionManagement> <site> <id>githubpages</id> <url>scm:git:ssh://git@github.com/${github.account}/${project.artifactId}.git</url> </site> </distributionManagement--> <dependencyManagement> <dependencies> <!-- TODO CHECK --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jakarta.rs</groupId> <artifactId>jackson-jakarta-rs-json-provider</artifactId> <version>${jackson.version}</version> </dependency> <!-- Unit tests --> <!-- Junit 5 https://junit.org/junit5/docs/current/user-guide/ --> <dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> <version>${junit.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!--AssertJ --> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>${assertj.version}</version> <scope>test</scope> </dependency> <!-- Mockito https://site.mockito.org/ --> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>${mockito.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-junit-jupiter</artifactId> <version>${mockito.version}</version> <scope>test</scope> </dependency> <!-- JSON Assert https://github.com/skyscreamer/JSONassert--> <dependency> <groupId>org.skyscreamer</groupId> <artifactId>jsonassert</artifactId> <version>${jsonassert.version}</version> <scope>test</scope> </dependency> <!-- Awaitibility http://www.awaitility.org/ --> <dependency> <groupId>org.awaitility</groupId> <artifactId>awaitility</artifactId> <version>${awaitility.version}</version> <scope>test</scope> </dependency> <!-- Light tests of CDI beans --> <dependency> <groupId>org.jboss.arquillian.container</groupId> <artifactId>arquillian-weld-embedded</artifactId> <version>${arquillian-weld-embedded.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.weld.se</groupId> <artifactId>weld-se-core</artifactId> <version>${weld-se-core.version}</version> </dependency> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <version>${rest-assured.version}</version> <scope>test</scope> </dependency> <!-- Arquillian http://arquillian.org/arquillian-core/ --> <dependency> <groupId>org.jboss.arquillian</groupId> <artifactId>arquillian-bom</artifactId> <version>${arquillian.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.arquillian.cube</groupId> <artifactId>arquillian-cube-bom</artifactId> <version>${version.arquillian_cube}</version> <scope>import</scope> <type>pom</type> </dependency> <!-- Add the following in the project --> <!--dependency> <groupId>org.jboss.arquillian.junit5</groupId> <artifactId>arquillian-junit5-container</artifactId> <scope>test</scope> </dependency--> <!-- Utilities test functions in unit tests --> <!-- Hamcrest Matchers http://hamcrest.org/JavaHamcrest/tutorial --> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest</artifactId> <version>${hamcrest.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-library</artifactId> <version>${hamcrest.version}</version> <scope>test</scope> </dependency> <!-- Test containers --> <dependency> <groupId>org.testcontainers</groupId> <artifactId>testcontainers-bom</artifactId> <version>${testcontainers.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>postgresql</artifactId> <version>${testcontainers.postgresql.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>junit-jupiter</artifactId> <version>${testcontainers.version}</version> <scope>test</scope> </dependency> <!-- Lombok --> <!-- https://objectcomputing.com/resources/publications/sett/january-2010-reducing-boilerplate-code-with-project-lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <scope>provided</scope> <!-- trouble with javadoc ??? --> </dependency> <!-- Eclipse Collections https://www.eclipse.org/collections/--> <dependency> <groupId>org.eclipse.collections</groupId> <artifactId>eclipse-collections</artifactId> <version>${eclipsecollections.version}</version> </dependency> <!-- Runtime exception wrapper (for lambdas) --> <dependency> <groupId>com.pivovarit</groupId> <artifactId>throwing-function</artifactId> <version>${throwing-function.version}</version> </dependency> <!-- Databases connections --> <!-- JDBC --> <!-- H2 https://www.h2database.com --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>${h2.version}</version> </dependency> <!-- Postgres https://jdbc.postgresql.org/ --> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>${postgresql.version}</version> </dependency> <!-- MySQL https://dev.mysql.com/doc/connector-j/8.0/en/ --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <!-- Connection pool --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>${c3p0.version}</version> </dependency> <!-- Jakarta Persistence (ex JPA) https://jakarta.ee/specifications/persistence/3.0/jakarta-persistence-spec-3.0.html --> <dependency> <groupId>jakarta.persistence</groupId> <artifactId>jakarta.persistence-api</artifactId> <version>${jakarta.persistence.version}</version> </dependency> <!-- EclipseLink https://www.eclipse.org/eclipselink/ --> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>eclipselink</artifactId> <version>${eclipselink.version}</version> </dependency> <!-- Hibernate https://hibernate.org/orm/ --> <!--dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> <scope>compile</scope> </dependency--> <dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-platform</artifactId> <version>${hibernate.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>${hibernate-c3p0.version}</version> </dependency> <!-- Java/XML Mapping --> <!-- JAXB https://jakarta.ee/specifications/xml-binding/3.0/jakarta-xml-binding-spec-3.0.html --> <dependency> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> <version>${jaxb.version}</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>${jaxbimpl.version}</version> <scope>runtime</scope> </dependency> <!-- Expression Language (EL) https://jakarta.ee/specifications/expression-language/4.0/jakarta-expression-language-spec-4.0.html --> <dependency> <groupId>org.glassfish</groupId> <artifactId>jakarta.el</artifactId> <version>${el.version}</version> </dependency> <!-- Authentication --> <!-- JSON Web Token (JWT) https://jwt.io/ --> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-api</artifactId> <version>${jjwt.version}</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-impl</artifactId> <version>${jjwt.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt-jackson</artifactId> <version>${jjwt.version}</version> <scope>runtime</scope> </dependency> <!-- BEAN VALIDATION https://jakarta.ee/specifications/bean-validation/3.0/ --> <!-- added transitively by the Hibernate Validator --> <!--dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> <version>${beanvalidation.version}</version> </dependency--> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>${hibernate-validator.version}</version> </dependency> <!-- Jakarta RESTful Web Services (JAXRS) https://jakarta.ee/specifications/restful-ws/3.0/ --> <dependency> <groupId>org.glassfish.jersey</groupId> <artifactId>jersey-bom</artifactId> <version>${jersey.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- JAXRS --> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>${jaxrs.version}</version> </dependency> <!-- Jersey Client --> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>${jersey-client.version}</version> </dependency> <!-- Websocket API & Implementation --> <!-- Not needed as embedded in Tyrus --> <!--dependency> <groupId>jakarta.websocket</groupId> <artifactId>jakarta.websocket-api</artifactId> <version>2.0.0</version> </dependency--> <dependency> <groupId>org.glassfish.tyrus</groupId> <artifactId>tyrus-server</artifactId> <version>${tyrus.version}</version> </dependency> <dependency> <groupId>org.glassfish.tyrus</groupId> <artifactId>tyrus-container-grizzly-server</artifactId> <version>${tyrus.version}</version> </dependency> <dependency> <groupId>org.glassfish.tyrus.bundles</groupId> <artifactId>tyrus-standalone-client</artifactId> <version>${tyrus.version}</version> </dependency> <!-- JEE --> <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-web-api</artifactId> <version>${jakarta.jakartaee-api.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-api</artifactId> <version>${jakarta.jakartaee-api.version}</version> <scope>provided</scope> </dependency> <!-- JSF --> <dependency> <groupId>org.primefaces</groupId> <artifactId>primefaces</artifactId> <version>${primefaces.version}</version> <classifier>jakarta</classifier> </dependency> <dependency> <groupId>org.primefaces.themes</groupId> <artifactId>all-themes</artifactId> <version>${all-themes.version}</version> </dependency> <!-- Loggers with SLF4J --> <!-- SLF4J with logBack --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${sl4j.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${sl4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>${sl4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>${sl4j.version}</version> </dependency> </dependencies> </dependencyManagement> <!-- Build Settings --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <executions> <execution> <id>attach-descriptor</id> <goals> <goal>attach-descriptor</goal> </goals> </execution> <execution> <id>stage-for-scm-publish</id> <phase>post-site</phase> <goals> <goal>stage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-scm-publish-plugin</artifactId> <configuration> <pubScmUrl>scm:git:ssh://git@github.com/${github.account}/${project.artifactId}.git</pubScmUrl> <scmBranch>gh-pages</scmBranch> </configuration> <executions> <execution> <id>scm-publish</id> <phase>site-deploy</phase> <goals> <goal>publish-scm</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-versions</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireMavenVersion> <version>${maven.version}</version> </requireMavenVersion> <requireJavaVersion> <version>${java.version}</version> </requireJavaVersion> <!--requireProperty> <property>app.main.class</property> <message>You must set app.main.class property.</message> <regex>([\p{L}_$][\p{L}\p{N}_$]*\.)*[\p{L}_$][\p{L}\p{N}_$]*</regex> <regexMessage>You must set app.main.class property (full name of the default main Class for the project). </regexMessage> </requireProperty--> </rules> </configuration> </execution> </executions> </plugin> <!--plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>license-maven-plugin</artifactId> <version>2.0.0</version> <configuration> <licenseName>mit</licenseName> </configuration> <executions> <execution> <id>first</id> <goals> <goal>update-file-header</goal> </goals> <phase>process-sources</phase> </execution> </executions> </plugin--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> </plugin> </plugins> <!-- Centralized plugin configuration. These plugins have to be explicitly activated in children projects. Versions are given to ensure build repeatability. --> <pluginManagement> <plugins> <!-- The maven compiler. https://maven.apache.org/plugins/maven-compiler-plugin/ It sets the source and target java version. mvn compile --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${mavencompiler.version}</version> <configuration> <showDeprecation>true</showDeprecation> <showWarnings>true</showWarnings> <annotationProcessorPaths> <!-- TODO: add org.eclipse.persistence.jpa.modelgen.processor in a profile --> <!-- Lombok configuration for Java9 modularized projects --> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </path> </annotationProcessorPaths> </configuration> <!-- Compile the unit test classes to the unit test output directory --> <!-- Compile the integration test classes to the integration test output directory --> <!--executions> <execution> <id>default-testCompile</id> <goals> <goal>testCompile</goal> </goals> <phase>test-compile</phase> <configuration> <outputDirectory>target/test-classes</outputDirectory> <compileSourceRoots> <sourceRoot>src/test/java</sourceRoot> </compileSourceRoots> </configuration> </execution> <execution> <id>compile-integration-tests</id> <goals> <goal>testCompile</goal> </goals> <phase>pre-integration-test</phase> <configuration> <outputDirectory>target/test-integration-classes</outputDirectory> <compileSourceRoots> <sourceRoot>src/test-integration/java</sourceRoot> </compileSourceRoots> </configuration> </execution> </executions--> </plugin> <!-- Creates a jar containing sources of the project in the target directory. https://maven.apache.org/plugins/maven-source-plugin/ mvn source:jar --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>${mavensource.version}</version> <configuration> <archive> <manifest> <addClasspath>false</addClasspath> </manifest> </archive> </configuration> <executions> <execution> <id>attach-sources</id> <phase>verify</phase> <goals> <!-- produce source artifact for project main sources --> <goal>jar-no-fork</goal> <!-- produce test source artifact for project test sources --> <goal>test-jar-no-fork</goal> </goals> </execution> </executions> </plugin> <!-- Cleans the projects working directory https://maven.apache.org/plugins/maven-clean-plugin/ mvn clean:clean It can be used with other phases/goals mvn clean package --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>${mavenclean.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>${mavenjar.version}</version> <!--configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>${app.main.class}</mainClass> </manifest> </archive> </configuration--> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>${mavenresource.version}</version> <configuration> <!-- needed to include .gitignore --> <addDefaultExcludes>false</addDefaultExcludes> </configuration> <executions> <!-- Copy resources for the unit test resources files to the unit test output directory --> <execution> <id>default-testResources</id> <goals> <goal>testResources</goal> </goals> <phase>process-test-resources</phase> <configuration> <outputDirectory>${basedir}/target/test-classes</outputDirectory> <resources> <resource> <directory>${basedir}/src/test/resources</directory> </resource> </resources> </configuration> </execution> <!-- Copy resources for the integration test resources files to the integration test output directory --> <execution> <id>add-integration-test-resources</id> <goals> <goal>copy-resources</goal> </goals> <phase>pre-integration-test</phase> <configuration> <outputDirectory>${basedir}/target/test-integration-classes</outputDirectory> <resources> <resource> <directory>${basedir}/src/test-integration/resources</directory> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>${maveninstall.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-archetype-plugin</artifactId> <version>${mavenarchetype.version}</version> <configuration> <!-- needed to include .gitignore --> <useDefaultExcludes>false</useDefaultExcludes> </configuration> </plugin> <!-- Generates the javadoc. Private members are shown. see <reporting> below for a public only version https://maven.apache.org/plugins/maven-javadoc-plugin/ mvn javadoc:javadoc mvn javadoc:javadoc-jar --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${mavenjavadoc.version}</version> <configuration> <show>private</show> </configuration> </plugin> <!-- Deploy maven artifacts to a repository http://maven.apache.org/plugins/maven-deploy-plugin/ mvn deploy mvn deploy:deploy mvn deploy:deploy-file see <distributionManagement> above --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>${mavendeploy.version}</version> </plugin> <!-- Maven utilities : - adds sources, test, resources directories, ... mvn build-helper:add-source mvn build-helper:add-test-source mvn build-helper:add-resource mvn build-helper:add-test-resource - parses artifact version - removes project artifact from the local repository mvn build-helper:remove-project-artifact ... http://www.mojohaus.org/build-helper-maven-plugin/index.html --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>${mavenhelper.version}</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-help-plugin</artifactId> <version>${mavenhelp.version}</version> </plugin> <!-- Executes unit tests and Generates reports (target/surefire-reports). http://maven.apache.org/surefire/maven-surefire-plugin/ mvn test to avoid test execution : mvn install -DskipTests to avoid test compilation, execution and concerns integration test (see failsafe plugin): mvn install -Dmaven.test.skip=true see junit plugin --> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>${mavensurefire.version}</version> <!--configuration> <testClassesDirectory>${basedir}/target/test-classes</testClassesDirectory> <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory> <includes> <include>**/*.class</include> </includes> <testFailureIgnore>false</testFailureIgnore> </configuration--> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>${mavensurefirereport.version}</version> <configuration> <aggregate>true</aggregate> <linkXRef>true</linkXRef> </configuration> </plugin> <!-- runs integration tests. mvn verify http://maven.apache.org/surefire/maven-failsafe-plugin/ See docker profile to bind needed servers (web, database, ...) --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>${mavenfailsafe.version}</version> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>${nexusstaging.version}</version> </plugin> <!-- Generate of website for the project. It includes static and dynamic pages, and several reports. See <reporting> below. See the directory src/site https://maven.apache.org/plugins/maven-site-plugin/ mvn site The site can be deployed after generation (copied with scp or other protocols) with mvn site-deploy. Add <distributionManagement> <site> <id>www.yourcompany.com</id> <url>scp://www.yourcompany.com/www/docs/project/</url> </site> </distributionManagement> to the project. mvn site:run launches de a web server see http://localhost:8080/ !! WARNING : BY DEFAULT WE SKIP IT TO USE GITHUB-PAGES BRANCH !! --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>${mavensite.version}</version> <configuration> <skipDeploy>true</skipDeploy> </configuration> </plugin> <plugin> <groupId>com.amashchenko.maven.plugin</groupId> <artifactId>gitflow-maven-plugin</artifactId> <version>${gitflow-maven-plugin.version}</version> <configuration> <installProject>false</installProject> <verbose>false</verbose> <gitFlowConfig> <productionBranch>master</productionBranch> <developmentBranch>develop</developmentBranch> <featureBranchPrefix>feature/</featureBranchPrefix> <releaseBranchPrefix>release/</releaseBranchPrefix> <hotfixBranchPrefix>hotfix/</hotfixBranchPrefix> <supportBranchPrefix>support/</supportBranchPrefix> <versionTagPrefix /> <origin>origin</origin> </gitFlowConfig> </configuration> </plugin> <!-- Sets the default class to run with mvn exec:java --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>${mavenexec.version}</version> <executions> <execution> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <!--suppress MavenModelInspection --> <mainClass>${app.main.class}</mainClass> </configuration> </plugin> <!-- Builds a jar that can merge the artifact and its dependencies https://maven.apache.org/plugins/maven-shade-plugin/ WARNING minimizeJar can cause trouble, disable it in the child project if needed The manifest mainclass can be given with the property ${app.main.class}. Its is added to the package phase. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>${mavenshade.version}</version> <configuration> <createDependencyReducedPom>true</createDependencyReducedPom> <minimizeJar>true</minimizeJar> <!-- The shaded artifact is not the main artifact --> <shadedArtifactAttached>true</shadedArtifactAttached> <shadedClassifierName>withdependencies</shadedClassifierName> <transformers> <!-- merge services resource for SPI --> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> <!-- makes a default entry point in the shaded jar --> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>${app.main.class}</Main-Class> <X-Compile-Source-JDK>${java.version}</X-Compile-Source-JDK> <X-Compile-Target-JDK>${java.version}</X-Compile-Target-JDK> </manifestEntries> </transformer> <!-- keep a default config file --> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>config.properties</resource> <resource>log4j.properties</resource> </transformer> </transformers> <!-- removes signatures in uberjar --> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>${mavenassembly.version}</version> </plugin> <!-- configuration of the SCM plugin to deploy GitHub pages in a dedicated branch --> <!-- Initial creation of the branch has to be done manually, as a Git orphan branch: 1. git checkout - -orphan gh-pages to create the branch locally, 2. rm .git/index ; git clean -fdx to clean the branch content and let it empy, 3. copy an initial site content, 4. commit and push: git add *, git commit -m "initial site content", git push --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-scm-publish-plugin</artifactId> <version>${mavenscm.version}</version> <configuration> <tryUpdate>true</tryUpdate> <scmBranch>gh-pages</scmBranch> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>${mavendependency.version}</version> <configuration> <!-- We remove classes loaded by introspection from the check --> <ignoredUnusedDeclaredDependencies> <ignoredUnusedDeclaredDependency>org.projectlombok:lombok</ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency>org.slf4j:slf4j-api</ignoredUnusedDeclaredDependency> <ignoredUnusedDeclaredDependency>org.junit.jupiter:junit-jupiter-engine </ignoredUnusedDeclaredDependency> </ignoredUnusedDeclaredDependencies> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>${mavenrelease.version}</version> </plugin> <!--plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>3.1.0</version> </plugin--> <!-- Sonarqube --> <plugin> <groupId>org.sonarsource.scanner.maven</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>${sonarqube.version}</version> </plugin> <plugin> <groupId>io.github.r0bb3n</groupId> <artifactId>sonar-quality-gate-maven-plugin</artifactId> <version>${sonarqualitygate.version}</version> </plugin> <!-- Plugin to check latest stable version of plugins and dependencies --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>${mavenversions.version}</version> <configuration> <rulesUri>file:///${project.basedir}/rules.xml</rulesUri> </configuration> <executions> <!--execution> <phase>compile</phase> <goals> <goal>display-dependency-updates</goal> <goal>display-plugin-updates</goal> </goals> </execution--> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>${mavenenforcer.version}</version> </plugin> <!-- A VOIR --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <version>${mavenflatten.version}</version> <configuration> </configuration> <executions> <!-- enable flattening --> <execution> <id>flatten</id> <phase>process-resources</phase> <goals> <goal>flatten</goal> </goals> </execution> <!-- ensure proper cleanup --> <execution> <id>flatten.clean</id> <phase>clean</phase> <goals> <goal>clean</goal> </goals> </execution> </executions> </plugin> <!-- Jakarta EE --> <!-- WAR --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>${maven-war-plugin.version}</version> </plugin> <!-- EJB --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ejb-plugin</artifactId> <version>${maven-ejb-plugin.version}</version> <configuration> <ejbVersion>4.0</ejbVersion> <generateClient>true</generateClient> </configuration> </plugin> <!-- EAR --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>${maven-ear-plugin.version}</version> <configuration> <version>10</version> <defaultLibBundleDir>lib/</defaultLibBundleDir> <skinnyWars>true</skinnyWars> </configuration> </plugin> <!-- Generation of self-signed certificates --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>keytool-maven-plugin</artifactId> <version>${keytool-maven-plugin.version}</version> <executions> <execution> <phase>generate-resources</phase> <id>generateKeyPair</id> <goals> <goal>generateKeyPair</goal> </goals> <configuration> <skipIfExist>true</skipIfExist> <keyalg>RSA</keyalg> <keystore>${project.basedir}/src/main/resources/mycert.p12</keystore> <storetype>PKCS12</storetype> </configuration> </execution> <execution> <phase>generate-resources</phase> <id>generateCertificateRequest</id> <goals> <goal>generateCertificateRequest</goal> </goals> <configuration> <file>${project.basedir}/src/main/resources/mycert.csr</file> <keystore>${project.basedir}/src/main/resources/mycert.p12</keystore> <storetype>PKCS12</storetype> </configuration> </execution> <execution> <phase>generate-resources</phase> <id>generateCertificate</id> <goals> <goal>generateCertificate</goal> </goals> <configuration> <keystore>${project.basedir}/src/main/resources/mycert.p12</keystore> <storetype>PKCS12</storetype> <infile>${project.basedir}/src/main/resources/mycert.csr</infile> <outfile>${project.basedir}/src/main/resources/mycert.crt</outfile> <rfc>true</rfc> <validity>100</validity> <sigalg>SHA256withRSA</sigalg> </configuration> </execution> <execution> <goals> <goal>exportCertificate</goal> </goals> <phase>generate-resources</phase> <configuration> <file>${project.basedir}/src/main/resources/mycert-pub.cer</file> <keystore>${project.basedir}/src/main/resources/mycert.p12</keystore> <storetype>PKCS12</storetype> <rfc>true</rfc> </configuration> </execution> <execution> <id>importCertificate</id> <goals> <goal>importCertificate</goal> </goals> <phase>generate-resources</phase> <configuration> <keystore>${project.basedir}/src/main/resources/mycert-pub.p12</keystore> <storetype>PKCS12</storetype> <file>${project.basedir}/src/main/resources/mycert-pub.cer</file> <trustcacerts>true</trustcacerts> <noprompt>true</noprompt> <passwordProtected>false</passwordProtected> <skipIfExist>true</skipIfExist> </configuration> </execution> </executions> <configuration> <storepass>storepass</storepass> <keypass>storepass</keypass> <alias>mycert</alias> <dname>cn=localhost</dname> </configuration> </plugin> </plugins> </pluginManagement> </build> <!-- See maven:site plugin --> <reporting> <excludeDefaults>true</excludeDefaults> <!--outputDirectory>${project.build.directory}/site</outputDirectory--> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version>${maveninforeport.version}</version> <configuration> <!--dependencyLocationsEnabled>false</dependencyLocationsEnabled--> </configuration> <reportSets> <reportSet> <reports> <report>summary</report> <report>dependency-info</report> <report>team</report> <report>scm</report> <report>distribution-management</report> <report>issue-management</report> <report>mailing-lists</report> <report>ci-management</report> <report>dependencies</report> <!--report>dependency-convergence</report--> <report>dependency-management</report> <report>index</report> <report>licenses</report> <report>modules</report> <report>plugins</report> <report>plugin-management</report> </reports> </reportSet> </reportSets> </plugin> <!--plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changelog-plugin</artifactId> <version>2.3</version> </plugin--> <!-- A specific version of the javadoc for the website with only public members --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${mavenjavadoc.version}</version> <configuration /> <reportSets> <reportSet> <id>default</id> <configuration> <show>public</show> </configuration> <reports> <report>javadoc</report> <!--report>test-javadoc</report--> </reports> </reportSet> <!--reportSet> <id>aggregate</id> <configuration> </configuration> <reports> <report>aggregate</report> </reports> </reportSet--> </reportSets> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>${mavenversions.version}</version> <reportSets> <reportSet> <reports> <report>dependency-updates-report</report> <report>plugin-updates-report</report> <report>property-updates-report</report> </reports> </reportSet> </reportSets> </plugin> </plugins> </reporting> <profiles> <profile> <!-- A profile to sign artifacts with gpg mvn verify -P gpgsigning ou mvn deploy -P gpgsigning //no white space between the two dashes (due to xml comment). gpg - -verify \ target/maven-parentpom-0.1.0-SNAPSHOT.pom.asc \ target/maven-parentpom-0.1.0-SNAPSHOT.pom --> <id>gpgsigning</id> <build> <plugins> <plugin> <groupId>org.simplify4u.plugins</groupId> <artifactId>sign-maven-plugin</artifactId> <version>${simplify4usign.version}</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>mavencentral</id> <distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>github</id> <distributionManagement> <repository> <id>github</id> <name>GitHub Packages</name> <url>https://maven.pkg.github.com/${github.account}/${project.artifactId}</url> </repository> <snapshotRepository> <id>github</id> <name>GitHub Packages</name> <url>https://maven.pkg.github.com/${github.account}/${project.artifactId}</url> </snapshotRepository> </distributionManagement> </profile> <profile> <id>shadedjar</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>native</id> <build> <plugins> <plugin> <groupId>org.graalvm.buildtools</groupId> <artifactId>native-maven-plugin</artifactId> <version>${mavengrallvm.version}</version> <extensions>true</extensions> <executions> <execution> <id>build-native</id> <goals> <goal>compile-no-fork</goal> </goals> <phase>package</phase> </execution> <execution> <id>test-native</id> <goals> <goal>test</goal> </goals> <phase>test</phase> </execution> </executions> <configuration> <buildArgs> <!-- needed to run on alpine without glibc --> <arg>--static</arg> </buildArgs> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>jlink</id> <build> <plugins> <!-- Needed to use jlink with automatic modules We use https://github.com/ghackenberg/jigsaw-maven-plugin We move jars in target/modules --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <outputDirectory>${project.build.directory}/modules</outputDirectory> </configuration> </plugin> <!-- To deal with automatic modules We copy all the dependencies in target/modules --> <plugin> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/modules</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>io.github.ghackenberg</groupId> <artifactId>jigsaw-maven-plugin</artifactId> <version>${mavenjigsaw.version}</version> <executions> <execution> <phase>package</phase> <goals> <goal>link</goal> </goals> </execution> </executions> <configuration> <mainClass>${app.main.class}</mainClass> <multiRelease>${java.version}</multiRelease> <ignoreMissingDeps>true</ignoreMissingDeps> <launcher>myapp=${project.module}/${app.main.class}</launcher> <!-- Waiting for pull request to be merged --> <jlinkOptions>--no-header-files,- -no-man-pages,- -strip-debug,--compress=2</jlinkOptions> <module>${project.module}</module> <!--ignoreSigningInfo>true</ignoreSigningInfo--> </configuration> </plugin> <!-- This is an app, so we don't want to install it in the local Maven repository --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>javadoc</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <id>aggregate</id> <phase>package</phase> <goals> <goal>aggregate</goal> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> <!-- java code coverage with surefire --> <profile> <id>jacoco</id> <build> <plugins> <!-- Code coverage --> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco.version}</version> <executions> <!-- Surefire --> <execution> <id>before-unit-test-execution</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <destFile> ${project.build.directory}/jacoco-output/jacoco-unit-tests.exec </destFile> <propertyName>surefire.jacoco.args</propertyName> </configuration> </execution> <execution> <id>after-unit-test-execution</id> <phase>test</phase> <goals> <goal>report</goal> </goals> <configuration> <dataFile> ${project.build.directory}/jacoco-output/jacoco-unit-tests.exec </dataFile> <outputDirectory> ${project.reporting.outputDirectory}/jacoco-unit-test-coverage-report </outputDirectory> </configuration> </execution> <!-- Failsafe --> <execution> <id>before-integration-test-execution</id> <phase>pre-integration-test</phase> <goals> <goal>prepare-agent</goal> </goals> <configuration> <destFile> ${project.build.directory}/jacoco-output/jacoco-integration-tests.exec </destFile> <propertyName>failsafe.jacoco.args</propertyName> </configuration> </execution> <execution> <id>after-integration-test-execution</id> <phase>post-integration-test</phase> <goals> <goal>report</goal> </goals> <configuration> <dataFile> ${project.build.directory}/jacoco-output/jacoco-integration-tests.exec </dataFile> <outputDirectory> ${project.reporting.outputDirectory}/jacoco-integration-test-coverage-report </outputDirectory> </configuration> </execution> <!-- Merged test coverage report --> <execution> <id>merge-unit-and-integration</id> <phase>post-integration-test</phase> <goals> <goal>merge</goal> </goals> <configuration> <fileSets> <fileSet> <directory>${project.build.directory}/jacoco-output/</directory> <includes> <include>*.exec</include> </includes> </fileSet> </fileSets> <destFile>${project.build.directory}/jacoco-output/merged.exec</destFile> </configuration> </execution> <execution> <id>create-merged-report</id> <phase>post-integration-test</phase> <goals> <goal>report</goal> </goals> <configuration> <dataFile>${project.build.directory}/jacoco-output/merged.exec</dataFile> <outputDirectory> ${project.reporting.outputDirectory}/jacoco-merged-coverage-report </outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <!--suppress UnresolvedMavenProperty --> <!--suppress UnresolvedMavenProperty --> <argLine>${failsafe.jacoco.args}</argLine> </configuration> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!--suppress UnresolvedMavenProperty --> <argLine>${surefire.jacoco.args}</argLine> <testFailureIgnore>false</testFailureIgnore> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>sonar</id> <properties> <!--suppress UnresolvedMavenProperty --> <sonar.host.url>${env.SONAR_URL}</sonar.host.url> <!--suppress UnresolvedMavenProperty --> <sonar.login>${env.SONAR_TOKEN}</sonar.login> <sonar.coverage.jacoco.xmlReportPaths> target/site/jacoco-merged-coverage-report/jacoco.xml </sonar.coverage.jacoco.xmlReportPaths> <sonar.exclusions>**/module-info.java</sonar.exclusions> </properties> </profile> <!-- JEE Profiles --> <!-- Payara micro provisioning --> <profile> <id>arq-payara-micro</id> <!--dependencies> <dependency> <groupId>fish.payara.arquillian</groupId> <artifactId>arquillian-payara-micro-managed</artifactId> <version>${arquillian-payara.version}</version> <scope>test</scope> </dependency> </dependencies--> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>unpack</id> <!--phase>pre-integration-test</phase--> <phase>prepare-package</phase> <goals> <goal>copy</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>fish.payara.extras</groupId> <artifactId>payara-micro</artifactId> <version>${payara.version}</version> <type>jar</type> <overWrite>false</overWrite> <!--suppress UnresolvedMavenProperty --> <outputDirectory> ${session.executionRootDirectory}/target</outputDirectory> <destFileName>payara-micro.jar</destFileName> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemPropertyVariables> <!--suppress UnresolvedMavenProperty --> <!--payara.home>${session.executionRootDirectory}/target/payara6</payara.home--> <buildDirectory>${project.build.directory}</buildDirectory> <!--suppress UnresolvedMavenProperty --> <payara.microJar> ${session.executionRootDirectory}/target/payara-micro.jar </payara.microJar> </systemPropertyVariables> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <systemPropertyVariables> <!--suppress UnresolvedMavenProperty --> <!--payara.home>${session.executionRootDirectory}/target/payara6</payara.home--> <buildDirectory>${project.build.directory}</buildDirectory> <!--suppress UnresolvedMavenProperty --> <payara.microJar> ${session.executionRootDirectory}/target/payara-micro.jar</payara.microJar> </systemPropertyVariables> </configuration> </plugin> </plugins> </build> </profile> <!-- Payara full provisioning --> <profile> <id>arq-payara-managed</id> <dependencies> <dependency> <groupId>fish.payara.arquillian</groupId> <artifactId>arquillian-payara-server-managed</artifactId> <version>${arquillian-payara.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.6.1</version> <executions> <execution> <id>unpack</id> <!--phase>pre-integration-test</phase--> <phase>prepare-package</phase> <goals> <goal>unpack</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>fish.payara.distributions</groupId> <artifactId>payara</artifactId> <version>${payara.version}</version> <type>zip</type> <overWrite>false</overWrite> <!--suppress UnresolvedMavenProperty --> <outputDirectory> ${session.executionRootDirectory}/target</outputDirectory> </artifactItem> </artifactItems> </configuration> </execution> <!--execution> <id>copy-h2</id> <phase>pre-integration-test</phase> <goals> <goal>copy</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>${h2.version}</version> <type>jar</type> <overWrite>true</overWrite> <outputDirectory>${project.build.directory}/target/payara6/glassfish/h2db/bin/ </outputDirectory> <destFileName>h2.jar</destFileName> </artifactItem> </artifactItems> </configuration> </execution--> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemPropertyVariables> <!--suppress UnresolvedMavenProperty --> <payara.home>${session.executionRootDirectory}/target/payara6</payara.home> </systemPropertyVariables> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <configuration> <systemPropertyVariables> <!--suppress UnresolvedMavenProperty --> <payara.home>${session.executionRootDirectory}/target/payara6</payara.home> <arquillian.launch>payara-managed</arquillian.launch> </systemPropertyVariables> </configuration> </plugin> </plugins> </build> </profile> </profiles> </project>