pom
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.nuiton</groupId>
<artifactId>pom</artifactId>
<version>12.1</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
#%L
POM
%%
Copyright (C) 2014 - 2026 Code Lutin
%%
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Lesser Public License for more details.
You should have received a copy of the GNU General Lesser Public
License along with this program. If not, see
<http://www.gnu.org/licenses/lgpl-3.0.html>.
#L%
-->
<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.nuiton</groupId>
<artifactId>pom</artifactId>
<version>12.1</version>
<packaging>pom</packaging>
<name>POM</name>
<description>A common shared POM for our Maven projects</description>
<url>${projectUrl}</url>
<inceptionYear>2014</inceptionYear>
<organization>
<name>Code Lutin</name>
<url>https://www.codelutin.com/</url>
</organization>
<licenses>
<license>
<name>Lesser General Public License (LGPL) v 3.0</name>
<url>https://www.gnu.org/licenses/lgpl-3.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<!-- Les développeurs sont propres à chaque projet. On ne les déclare pas sur POM pour ne pas impacter les projets -->
<developers/>
<mailingLists/>
<prerequisites>
<maven>3.6</maven>
</prerequisites>
<modules>
<module>nuitonpom</module>
<module>chorempom</module>
</modules>
<scm>
<connection>scm:git:git@gitlab.nuiton.org:nuiton/pom.git</connection>
<developerConnection>scm:git:git@gitlab.nuiton.org:nuiton/pom.git</developerConnection>
<url>https://gitlab.nuiton.org/nuiton/pom</url>
</scm>
<issueManagement>
<system>${issuesSystem}</system>
<url>${issuesUrl}</url>
</issueManagement>
<ciManagement>
<system>gitlab-ci</system>
<url>https://gitlab.nuiton.org/${gitlabGroupName}/${gitlabProjectName}/pipelines</url>
</ciManagement>
<distributionManagement>
<repository>
<id>${release.server}</id>
<url>${release.repository}</url>
</repository>
<snapshotRepository>
<id>${snapshot.server}</id>
<url>${snapshot.repository}</url>
</snapshotRepository>
<site>
<id>${project.artifactId}-site</id>
<!--
On ne déploie plus les sites via Maven, donc on fait juste croire au plugin que c'est dans /tmp
pour qu'il génère les sites avec les liens entre projet et sous-modules
-->
<url>file://tmp/</url>
</site>
</distributionManagement>
<properties>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// Mandatory properties you need to define in your project //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- a property to define the Gitlab's group -->
<gitlabGroupName/>
<!-- a property to define the id of the project, in a multi-module
project, you must use a hard-cored value, otherwise for modules
the artifactId will be expanded , otherwise, no need to override it -->
<gitlabProjectName/>
<projectUrl>https://gitlab.nuiton.org/${gitlabGroupName}/${gitlabProjectName}</projectUrl>
<issuesSystem>gitlab</issuesSystem>
<issuesUrl>https://gitlab.nuiton.org/${gitlabGroupName}/${gitlabProjectName}/issues</issuesUrl>
<!-- To define java level (use 1.6, 1.7, 1.8, 11, 21, etc.) -->
<javaVersion/>
<!--
To define which java level to check in your java code (should be synch with javaVersion).
Use (16, 17 or 18) (this is the version of the animal-sniffer signature artifactId to use)
-->
<signatureArtifactId/>
<!--
To define which java level to check in your java code (should be synch with javaVersion).
Use (1.0 for most case) (this is the version of the animal-sniffer signature version to use)
-->
<signatureVersion/>
<!-- default encoding -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// Deployement configuration //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- server to use for snapshot -->
<snapshot.server>nuiton-nexus-deploy</snapshot.server>
<!-- location of the snapshot repository to use -->
<snapshot.repository>https://nexus.nuiton.org/nexus/content/repositories/snapshots</snapshot.repository>
<!-- server to use for release -->
<release.server>nuiton-nexus-deploy</release.server>
<!-- location of the release repository to use -->
<release.repository>${other.release.repository}</release.repository>
<!-- location of central-releases repository -->
<central.release.repository>
https://nexus.nuiton.org/nexus/content/repositories/central-releases
</central.release.repository>
<!-- location of other-releases repository -->
<other.release.repository>
https://nexus.nuiton.org/nexus/content/repositories/other-releases
</other.release.repository>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// Maven repositories //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- central releases url -->
<central.release.home.url>https://nexus.nuiton.org/nexus/content/repositories/central-releases
</central.release.home.url>
<!-- other releases url -->
<other.release.home.url>https://nexus.nuiton.org/nexus/content/repositories/other-releases</other.release.home.url>
<!-- release repository url (to be used in site.xml, by default use other-release repository) -->
<repository.home.url>${other.release.home.url}</repository.home.url>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// Plugins version //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- our plugins -->
<helperPluginVersion>2.5.0</helperPluginVersion>
<!-- apache maven plugins version -->
<antRunPluginVersion>3.2.0</antRunPluginVersion>
<assemblyPluginVersion>3.8.0</assemblyPluginVersion>
<cleanPluginVersion>3.5.0</cleanPluginVersion>
<compilerPluginVersion>3.15.0</compilerPluginVersion>
<dependencyPluginVersion>3.10.0</dependencyPluginVersion>
<deployPluginVersion>3.1.4</deployPluginVersion>
<earPluginVersion>3.4.0</earPluginVersion>
<ejbPluginVersion>3.3.0</ejbPluginVersion>
<enforcerPluginVersion>3.6.2</enforcerPluginVersion>
<gpgPluginVersion>3.2.8</gpgPluginVersion>
<installPluginVersion>3.1.4</installPluginVersion>
<invokerPluginVersion>3.10.1</invokerPluginVersion>
<jarPluginVersion>3.5.0</jarPluginVersion>
<jarSignerPluginVersion>3.1.0</jarSignerPluginVersion>
<javadocPluginVersion>3.12.0</javadocPluginVersion>
<pluginPluginVersion>3.15.2</pluginPluginVersion>
<pmdPluginVersion>3.28.0</pmdPluginVersion>
<releasePluginVersion>3.3.1</releasePluginVersion>
<remoteResourcesPluginVersion>3.3.0</remoteResourcesPluginVersion>
<resourcesPluginVersion>3.5.0</resourcesPluginVersion>
<shadePluginVersion>3.6.2</shadePluginVersion>
<sitePluginVersion>4.0.0-M16</sitePluginVersion>
<sourcePluginVersion>3.4.0</sourcePluginVersion>
<surefirePluginVersion>3.5.5</surefirePluginVersion>
<warPluginVersion>3.5.1</warPluginVersion>
<!-- codehaus mojo plugins -->
<animalSnifferPluginVersion>1.27</animalSnifferPluginVersion>
<buildHelperPluginVersion>3.6.1</buildHelperPluginVersion>
<buildNumberPluginVersion>3.3.0</buildNumberPluginVersion>
<coberturaPluginVersion>2.7</coberturaPluginVersion>
<execPluginVersion>3.6.3</execPluginVersion>
<findbugsPluginVersion>3.0.5</findbugsPluginVersion>
<l10nPluginVersion>1.2.0</l10nPluginVersion>
<licensePluginVersion>2.7.1</licensePluginVersion>
<tidyPluginVersion>1.4.0</tidyPluginVersion>
<versionsPluginVersion>2.21.0</versionsPluginVersion>
<wagonPluginVersion>3.0.0</wagonPluginVersion>
<webstartPluginVersion>1.0-beta-7</webstartPluginVersion>
<!-- codehaus plexus plugins -->
<plexusComponentMetadataPluginVersion>2.2.0</plexusComponentMetadataPluginVersion>
<plexusPluginVersion>1.3.8</plexusPluginVersion>
<!-- others plugins -->
<gitCommitIdPluginVersion>10.0.0</gitCommitIdPluginVersion>
<gitflowPluginVersion>1.21.0</gitflowPluginVersion>
<jacocoPluginVersion>0.8.14</jacocoPluginVersion>
<jettyPluginVersion>11.0.26</jettyPluginVersion>
<sonarPluginVersion>5.6.0.6792</sonarPluginVersion>
<!-- report plugins version -->
<changelogPluginVersion>2.3</changelogPluginVersion>
<changesPluginVersion>2.12.1</changesPluginVersion>
<jxrPluginVersion>3.6.0</jxrPluginVersion>
<projectInfoReportsPluginVersion>3.9.0</projectInfoReportsPluginVersion>
<!-- to deploy with scpexe for maven 3 -->
<wagonSshExternalVersion>3.5.3</wagonSshExternalVersion>
<!-- versions of javadoc tagglets -->
<mavenPluginToolsJavadocVersion>3.5.2</mavenPluginToolsJavadocVersion>
<plexusComponentJavadocVersion>1.7.1</plexusComponentJavadocVersion>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// Compiler configuration //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<maven.compiler.source>${javaVersion}</maven.compiler.source>
<maven.compiler.target>${javaVersion}</maven.compiler.target>
<maven.compiler.showWarnings>true</maven.compiler.showWarnings>
<maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
<!-- for the moment we do not want to use incremental compilation -->
<maven.compiler.useIncrementalCompilation>false</maven.compiler.useIncrementalCompilation>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// Javadoc configuration //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- pour modifier la verbosite de la javadoc -->
<maven.javadoc.quiet>true</maven.javadoc.quiet>
<!-- pour definir la version de l'api de la jre à inclure dans le site -->
<javadocJreApiVersion>${javaVersion}</javadocJreApiVersion>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// License configuration //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<license.useMissingFile>true</license.useMissingFile>
<license.failOnMissing>true</license.failOnMissing>
<license.failOnBlacklist>true</license.failOnBlacklist>
<license.licenseName>lgpl_v3</license.licenseName>
<maven.license.file>${project.basedir}/LICENSE.txt</maven.license.file>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// Site generation configuration //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- fluido skin version -->
<fluidoSkinVersion>1.11.1</fluidoSkinVersion>
<!-- to generate sitemap -->
<generateSitemap>true</generateSitemap>
<!-- do not relativize links in generated site -->
<relativizeDecorationLinks>false</relativizeDecorationLinks>
<!-- Documentation is in apt format (can use rst, md)-->
<siteSourcesType>apt</siteSourcesType>
<!-- Shared resources for maven site -->
<siteCommonResourcesUrl>https://common.nuiton.org/dev</siteCommonResourcesUrl>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// gitflow configuration //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<gitflow.masterBranchName>master</gitflow.masterBranchName>
<gitflow.developBranchName>develop</gitflow.developBranchName>
<!-- La pratique avant était de mettre `${gitlabProjectName}-` mais on décide en 11.7 d'avoir des noms de tag
sans le nom du projet -->
<gitflow.versionTagPrefix/>
<!-- Étape de vérification avant le tag -->
<gitflow.preReleaseGoals>clean verify -DperformRelease</gitflow.preReleaseGoals>
<!-- Étape de déploiement après le tag -->
<gitflow.postReleaseGoals>deploy -DperformRelease -Dmaven.test.skip</gitflow.postReleaseGoals>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// Release configuration //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- extra arguments used by release plugin -->
<arguments>-Ppost-release-profile</arguments>
<!-- Post Release configuration (set it to false on last module of a project to finalize to release) -->
<skipPostRelease>true</skipPostRelease>
<!--par defaut on ne déploie rien-->
<maven.deploy.skip>true</maven.deploy.skip>
<!--par default on ne construit pas la javadoc-->
<maven.javadoc.skip>true</maven.javadoc.skip>
<!--par defaut on ne construit pas les sources-->
<maven.source.skip>true</maven.source.skip>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// Analyze Dependencies configuration (in performRelease) //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- In some cases, false positive cannot be bypassed : https://issues.apache.org/jira/browse/MDEP-753 -->
<analyzeDependencies.failOnWarning>true</analyzeDependencies.failOnWarning>
</properties>
<build>
<!--Ressources-->
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/*~</exclude>
</excludes>
</resource>
</resources>
<pluginManagement>
<plugins>
<!-- Plugins version from apache -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>${antRunPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>${assemblyPluginVersion}</version>
<!-- La dépendance est nécessaire pour récupérer les descriptors définis dans ce module -->
<dependencies>
<dependency>
<groupId>org.nuiton</groupId>
<artifactId>helper-maven-plugin-api</artifactId>
<version>${helperPluginVersion}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>${cleanPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compilerPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>${dependencyPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>${deployPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>${earPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-ejb-plugin</artifactId>
<version>${ejbPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${enforcerPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<version>${gpgPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>${installPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<version>${invokerPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>${jarPluginVersion}</version>
<inherited>true</inherited>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<url>${project.url}</url>
</manifestEntries>
<!--<!– cela fait bugger le chargement des service via ServiceLoader donc on desactive –>-->
<!--<!– index>true</index–>-->
<!--<manifest>-->
<!--<mainClass>${maven.jar.main.class}</mainClass>-->
<!--</manifest>-->
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>${jarSignerPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${javadocPluginVersion}</version>
<configuration>
<quiet>${maven.javadoc.quiet}</quiet>
<charset>${project.reporting.outputEncoding}</charset>
<detectJavaApiLink>true</detectJavaApiLink>
<tagletArtifacts>
<tagletArtifact>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-tools-javadoc</artifactId>
<version>${mavenPluginToolsJavadocVersion}</version>
</tagletArtifact>
<tagletArtifact>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-javadoc</artifactId>
<version>${plexusComponentJavadocVersion}</version>
</tagletArtifact>
</tagletArtifacts>
</configuration>
</plugin>
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
<version>${pluginPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-pmd-plugin</artifactId>
<version>${pmdPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>${releasePluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>${remoteResourcesPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${resourcesPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>${shadePluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>${sitePluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>${sourcePluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefirePluginVersion}</version>
<configuration>
<systemPropertyVariables>
<java.io.tmpdir>
${project.build.directory}/surefire-workdir
</java.io.tmpdir>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>${warPluginVersion}</version>
</plugin>
<!-- Plugins version from codehaus mojo -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<version>${animalSnifferPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>${coberturaPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${execPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${buildHelperPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>${buildNumberPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>${findbugsPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>l10n-maven-plugin</artifactId>
<version>${l10nPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${licensePluginVersion}</version>
</plugin>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonarPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tidy-maven-plugin</artifactId>
<version>${tidyPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${versionsPluginVersion}</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>${wagonPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>webstart-maven-plugin</artifactId>
<version>${webstartPluginVersion}</version>
<configuration>
<libPath>lib</libPath>
<makeArchive>false</makeArchive>
<verbose>false</verbose>
<canUnsign>false</canUnsign>
<jnlp>
<mainClass>${maven.jar.main.class}</mainClass>
<allPermissions>true</allPermissions>
<offlineAllowed>true</offlineAllowed>
</jnlp>
<sign>
<keystore>${keystorepath}</keystore>
<storepass>${keystorepass}</storepass>
<alias>${keyalias}</alias>
<keypass>${keypass}</keypass>
<verify>true</verify>
<keystoreConfig>
<delete>false</delete>
<gen>false</gen>
</keystoreConfig>
</sign>
</configuration>
</plugin>
<!-- Plugins version from codehaus plexus -->
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-metadata</artifactId>
<version>${plexusComponentMetadataPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-maven-plugin</artifactId>
<version>${plexusPluginVersion}</version>
</plugin>
<!-- Plugins version from nuiton -->
<plugin>
<groupId>org.nuiton</groupId>
<artifactId>helper-maven-plugin</artifactId>
<version>${helperPluginVersion}</version>
</plugin>
<!-- Plugins version from others -->
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jettyPluginVersion}</version>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jspc-maven-plugin</artifactId>
<version>${jettyPluginVersion}</version>
</plugin>
<plugin>
<groupId>com.amashchenko.maven.plugin</groupId>
<artifactId>gitflow-maven-plugin</artifactId>
<version>${gitflowPluginVersion}</version>
<configuration>
<verbose>true</verbose>
<gitFlowConfig>
<productionBranch>${gitflow.masterBranchName}</productionBranch>
<developmentBranch>${gitflow.developBranchName}</developmentBranch>
<versionTagPrefix>${gitflow.versionTagPrefix}</versionTagPrefix>
</gitFlowConfig>
<commitMessagePrefix>[gitflow-maven-plugin] </commitMessagePrefix>
<!-- On ignore les tests pendant le release-finish ... -->
<skipTestProject>true</skipTestProject>
<!-- ... pour en réalité faire un verify complet avec -DperformRelease -->
<preReleaseGoals>${gitflow.preReleaseGoals}</preReleaseGoals>
<!-- Et on déploie ensuite -->
<postReleaseGoals>${gitflow.postReleaseGoals}</postReleaseGoals>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacocoPluginVersion}</version>
</plugin>
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<version>${gitCommitIdPluginVersion}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- http://nuiton.org/issues/1683 : creates the surefire-workdir -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>generate-surefire-workdir</id>
<phase>generate-test-sources</phase>
<configuration>
<!-- do not generate if tests are skipped -->
<skip>${maven.test.skip}</skip>
<target>
<mkdir dir="${basedir}/target/surefire-workdir"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-LICENSE-file</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<requireFilesExist>
<message>LICENSE.txt manquant. Il sera en théorie créé à la prochaine release.</message>
<files>
<file>LICENSE.txt</file>
</files>
</requireFilesExist>
</rules>
<ignoreCache>true</ignoreCache>
<failFast>true</failFast>
<fail>false</fail>
</configuration>
</execution>
<execution>
<id>enforce-README-file</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<requireFilesExist>
<message>Il est recommendé que chaque module ait son propre fichier README.md</message>
<files>
<file>README.md</file>
</files>
</requireFilesExist>
</rules>
<ignoreCache>true</ignoreCache>
<failFast>true</failFast>
<fail>false</fail>
</configuration>
</execution>
<execution>
<id>enforce-gitlabGroupName</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<requireProperty>
<property>gitlabGroupName</property>
<message>"gitlabGroupName property must be specified."</message>
<regex>.+$</regex>
<regexMessage>"gitlabGroupName property can not be empty."</regexMessage>
</requireProperty>
</rules>
<ignoreCache>true</ignoreCache>
<failFast>true</failFast>
<fail>true</fail>
</configuration>
</execution>
<execution>
<id>enforce-gitlabProjectName</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<requireProperty>
<property>gitlabProjectName</property>
<message>"gitlabProjectName property must be specified."</message>
<regex>.+$</regex>
<regexMessage>"gitlabProjectName property can not be empty."</regexMessage>
</requireProperty>
</rules>
<ignoreCache>true</ignoreCache>
<failFast>true</failFast>
<fail>true</fail>
</configuration>
</execution>
<execution>
<id>enforce-javaVersion</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<requireProperty>
<property>javaVersion</property>
<regex>1\.6|1\.7|1\.8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29$</regex>
<regexMessage>"Vous devez définir la propriété `javaVersion=(1\.6|1\.7|1\.8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29)`"</regexMessage>
</requireProperty>
</rules>
<ignoreCache>true</ignoreCache>
<failFast>true</failFast>
<fail>true</fail>
</configuration>
</execution>
<execution>
<id>enforce-signatureArtifactId</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<skip>${animal.sniffer.skip}</skip>
<rules>
<requireProperty>
<property>signatureArtifactId</property>
<regex>java16|java17|java18$</regex>
<regexMessage>"Vous devez définir la propriété `signatureArtifactId=(java16|java17|java18)` ou ignorer la vérification avec `animal.sniffer.skip=true`"</regexMessage>
</requireProperty>
</rules>
<ignoreCache>true</ignoreCache>
<failFast>true</failFast>
<fail>false</fail>
</configuration>
</execution>
<execution>
<id>enforce-signatureVersion</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<skip>${animal.sniffer.skip}</skip>
<rules>
<requireProperty>
<property>signatureVersion</property>
<regex>.+$</regex>
<regexMessage>"Vous devez définir la propriété `signatureVersion` ou ignorer la vérification avec `animal.sniffer.skip=true`"</regexMessage>
</requireProperty>
</rules>
<ignoreCache>true</ignoreCache>
<failFast>true</failFast>
<fail>false</fail>
</configuration>
</execution>
<execution>
<id>enforce-java-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<requireJavaVersion>
<version>${javaVersion}</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<!-- Enabling the use of scpexe with maven 3.0 -->
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh-external</artifactId>
<version>${wagonSshExternalVersion}</version>
</extension>
</extensions>
</build>
<reporting>
<excludeDefaults>true</excludeDefaults>
</reporting>
<profiles>
<!-- perform only on a release stage when using the maven-release-plugin -->
<profile>
<id>release-profile</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<properties>
<maven.root.dir>${session.executionRootDirectory}</maven.root.dir>
<!-- since v 4.0, can execute some mojo not on root module -->
<helper.runOnlyOnRoot>false</helper.runOnlyOnRoot>
</properties>
<build>
<plugins>
<!-- always compute source jar -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- always compute javadoc jar -->
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- perform only on a release stage when using the maven-release-plugin -->
<profile>
<id>license-profile</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<build>
<defaultGoal>generate-resources</defaultGoal>
<plugins>
<!-- add license and third-party files to build -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-licenses</id>
<goals>
<goal>update-project-license</goal>
<goal>add-third-party</goal>
</goals>
<configuration>
<licenseMerges>
<licenseMerge>
The Apache Software License, Version 2.0|Apache License, Version 2.0|Apache License V2.0|Apache
2|ASF 2.0|apache-2.0|Apache Public License 2.0
</licenseMerge>
<licenseMerge>BSD License|BSD license|BSD</licenseMerge>
<licenseMerge>MIT License|MIT license|MIT</licenseMerge>
<licenseMerge>
Lesser General Public License (LPGL) v 2.1|GNU Lesser General Public License, 2.1|LGPL 2.1
</licenseMerge>
<licenseMerge>
Lesser General Public License (LPGL)|GNU Lesser General Public License|GNU LESSER GENERAL PUBLIC
LICENSE|LGPL|lgpl
</licenseMerge>
<licenseMerge>
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0|Common Development and Distribution
License (CDDL) v1.0
</licenseMerge>
<licenseMerge>Indiana University Extreme! Lab Software License, vesion 1.1.1|Indiana University
Extreme! Lab Software License
</licenseMerge>
</licenseMerges>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- perform only on a release to do quality checks on release -->
<profile>
<id>release-quality-profile</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<configuration>
<signature>
<groupId>org.codehaus.mojo.signature</groupId>
<artifactId>${signatureArtifactId}</artifactId>
<version>${signatureVersion}</version>
</signature>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>enforce</goal>
</goals>
<id>ensure-no-container-api</id>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>
org.codehaus.plexus:plexus-component-api
</exclude>
</excludes>
<message>
The new containers are not supported. You
probably added a dependency that is missing the
exclusions.
</message>
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
<execution>
<id>enforce-bytecode-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<enforceBytecodeVersion>
<maxJdkVersion>${javaVersion}</maxJdkVersion>
</enforceBytecodeVersion>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.12.0</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.nuiton</groupId>
<artifactId>helper-maven-plugin</artifactId>
<executions>
<execution>
<id>check-central-safe</id>
<inherited>true</inherited>
<goals>
<goal>check-auto-container</goal>
</goals>
<configuration>
<addMavenCentral>true</addMavenCentral>
<failIfNotSafe>true</failIfNotSafe>
<runOnlyOnRoot>false</runOnlyOnRoot>
<runOnce>false</runOnce>
<repositories>
<central-releases>
${central.release.home.url}
</central-releases>
</repositories>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release-sign-artifacts</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<properties>
<!-- Disable this execution if no GPG signature is expected -->
<helper.skipShareServerSecret>${gpg.skip}</helper.skipShareServerSecret>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.nuiton</groupId>
<artifactId>helper-maven-plugin</artifactId>
<executions>
<execution>
<id>get-pgp-passphrase</id>
<goals>
<goal>share-server-secret</goal>
</goals>
<phase>verify</phase>
<configuration>
<serverId>gpg-signer</serverId>
<usernameOut>gpg.keyname</usernameOut>
<passwordOut>gpg.passphrase</passwordOut>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- This profile update license stuff with new goal update-file-header -->
<profile>
<id>update-file-header</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<properties>
<license.descriptor>src/license/project.xml</license.descriptor>
</properties>
<build>
<defaultGoal>process-resources</defaultGoal>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<id>update-file-header</id>
<goals>
<goal>update-file-header</goal>
</goals>
<configuration>
<excludes>
<exclude>**/i18n/*.properties</exclude>
<exclude>**/THIRD-PARTY.properties</exclude>
<!-- since sh scripts must begins by the line #!/bin/sh,
can not use the mojo for the mojo -->
<exclude>**/*.sh</exclude>
</excludes>
</configuration>
<phase>process-resources</phase>
</execution>
<execution>
<id>update-pom-header</id>
<goals>
<goal>update-file-header</goal>
</goals>
<configuration>
<roots>
<root>${project.basedir}</root>
</roots>
<includes>
<include>pom.xml</include>
</includes>
</configuration>
<phase>process-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>analyze-dependencies</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<build>
<defaultGoal>verify</defaultGoal>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<inherited>true</inherited>
<executions>
<execution>
<id>analyze</id>
<goals>
<goal>analyze-only</goal>
</goals>
<configuration>
<verbose>true</verbose>
<failOnWarning>${analyzeDependencies.failOnWarning}</failOnWarning>
<ignoreNonCompile>true</ignoreNonCompile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- perform on a release stage (do some redmine actions) -->
<profile>
<id>redmine-release-profile</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<!-- fails if redmine goals are not ok -->
<redmine.safe>true</redmine.safe>
</properties>
<reporting>
<plugins>
<plugin>
<artifactId>maven-changes-plugin</artifactId>
<version>${changesPluginVersion}</version>
<configuration>
<issueLinkTemplatePerSystem>
<redmine>${redmine.issueLinkTemplate}</redmine>
</issueLinkTemplatePerSystem>
<xmlPath>${redmine.xmlPath}</xmlPath>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>changes-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- <!– generate issues report –>-->
<!-- <plugin>-->
<!-- <groupId>org.nuiton.jredmine</groupId>-->
<!-- <artifactId>jredmine-maven-plugin</artifactId>-->
<!-- <version>${jredminePluginVersion}</version>-->
<!-- <configuration>-->
<!-- <columnNames>-->
<!-- key,summary,status,assignee,tracker,priority,version,category,createdOn-->
<!-- </columnNames>-->
<!-- </configuration>-->
<!-- <reportSets>-->
<!-- <reportSet>-->
<!-- <reports>-->
<!-- <report>issues-report</report>-->
<!-- </reports>-->
<!-- </reportSet>-->
<!-- </reportSets>-->
<!-- </plugin>-->
</plugins>
</reporting>
<build>
<plugins>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-redmineDomain</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<requireProperty>
<property>redmineDomain</property>
<message>"redmineDomain property must be specified."</message>
<regex>.+$</regex>
<regexMessage>"redmineDomain property can not be empty. Consider using the redmine-codelutin profile."</regexMessage>
</requireProperty>
</rules>
<ignoreCache>true</ignoreCache>
<failFast>true</failFast>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
<!--
- obtain redmine username
- collect all artifacts attached to build for announcements
-->
<plugin>
<groupId>org.nuiton</groupId>
<artifactId>helper-maven-plugin</artifactId>
<executions>
<execution>
<id>get-redmine-login</id>
<goals>
<goal>share-server-secret</goal>
</goals>
<phase>initialize</phase>
<configuration>
<serverId>redmine-${redmineDomain}</serverId>
<privateKeyOut>redmine.apiKey</privateKeyOut>
</configuration>
</execution>
<execution>
<id>collect-build-artifacts</id>
<goals>
<goal>collect-files</goal>
</goals>
<phase>verify</phase>
<configuration>
<descriptionFile>${redmine.collectedArtifacts}</descriptionFile>
<includeAttached>true</includeAttached>
<includeSiteAttached>true</includeSiteAttached>
</configuration>
</execution>
<execution>
<id>collect-build-attachements</id>
<goals>
<goal>collect-files</goal>
</goals>
<phase>verify</phase>
<configuration>
<extraFiles>${redmine.releaseFiles}</extraFiles>
<descriptionFile>${redmine.collectedAttachments}</descriptionFile>
<includeAttached>false</includeAttached>
</configuration>
</execution>
</executions>
</plugin>
<!-- <!–-->
<!-- - generate changes.xml file from redmine-->
<!-- –>-->
<!-- <plugin>-->
<!-- <groupId>org.nuiton.jredmine</groupId>-->
<!-- <artifactId>jredmine-maven-plugin</artifactId>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <id>jredmine-generate-changes</id>-->
<!-- <goals>-->
<!-- <goal>generate-changes</goal>-->
<!-- </goals>-->
<!-- <phase>process-classes</phase>-->
<!-- <configuration>-->
<!-- <generateOnce>true</generateOnce>-->
<!-- <actionMapping>fix:1, add:2, update:4</actionMapping>-->
<!-- </configuration>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
</plugins>
</build>
</profile>
<!-- profile with all reports (include in release process) -->
<profile>
<id>reporting</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<reporting>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${projectInfoReportsPluginVersion}</version>
<reportSets>
<reportSet>
<reports>
<!-- see https://forge.nuiton.org/issues/3346 -->
<!--<report>index</report>-->
<report>team</report>
<report>mailing-lists</report>
<report>ci-management</report>
<report>issue-management</report>
<report>licenses</report>
<report>scm</report>
<report>dependency-info</report>
<report>dependencies</report>
<report>dependency-convergence</report>
<report>plugin-management</report>
<report>plugins</report>
<report>dependency-management</report>
<report>summary</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${javadocPluginVersion}</version>
<configuration>
<quiet>${maven.javadoc.quiet}</quiet>
<charset>${project.reporting.outputEncoding}</charset>
<detectJavaApiLink>true</detectJavaApiLink>
<tagletArtifacts>
<tagletArtifact>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-tools-javadoc</artifactId>
<version>${mavenPluginToolsJavadocVersion}</version>
</tagletArtifact>
<tagletArtifact>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-javadoc</artifactId>
<version>${plexusComponentJavadocVersion}</version>
</tagletArtifact>
</tagletArtifacts>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>javadoc</report>
<report>test-javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<artifactId>maven-changelog-plugin</artifactId>
<version>${changelogPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-jxr-plugin</artifactId>
<version>${jxrPluginVersion}</version>
</plugin>
<plugin>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${surefirePluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${licensePluginVersion}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${versionsPluginVersion}</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>
</profile>
<!-- For post-release actions -->
<profile>
<id>post-release-profile</id>
<properties>
<!-- Default Release annoncement title -->
<releaseAnnouncementTitle>${session.topLevelProject.name} ${session.topLevelProject.version} released
</releaseAnnouncementTitle>
<!-- FIX #534 unmodifiable parameter when releasing -->
<helper.smtpHost>smtp</helper.smtpHost>
<skipReleaseSendEmail>${skipPostRelease}</skipReleaseSendEmail>
</properties>
<build>
<defaultGoal>validate</defaultGoal>
<plugins>
<!--
- send announcement email
-->
<plugin>
<groupId>org.nuiton</groupId>
<artifactId>helper-maven-plugin</artifactId>
<executions>
<execution>
<id>send-release-email</id>
<goals>
<goal>send-email</goal>
</goals>
<phase>install</phase>
<!--inherited>false</inherited-->
<configuration>
<!-- for a multi-module just run on root project -->
<runOnce>true</runOnce>
<skipSendEmail>${skipReleaseSendEmail}</skipSendEmail>
<emailTitle>
[ANN] - ${releaseAnnouncementTitle}
</emailTitle>
<emailContentFile>
target/generated-sources/announcement/release-email-announcement.vm
</emailContentFile>
<mailSender>
<name>Release Notification</name>
<email>noreply@${releaseEmailDomain}</email>
</mailSender>
<toAddresses>
<item>${gitlabProjectName}-commits@list.${releaseEmailDomain}</item>
</toAddresses>
<!--smtpHost>smtp</smtpHost-->
<!-- fix bug #146 -->
<encoding>iso-8859-1</encoding>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Redmine specific post-release actions -->
<profile>
<id>redmine-post-release-profile</id>
<properties>
<!-- fails if redmine goals are not ok -->
<redmine.safe>true</redmine.safe>
<!-- no dry run for us (we trust the jredmine-m-p !) -->
<redmine.dryRun>false</redmine.dryRun>
<!-- templates location -->
<redmine.templateDirectory>http://doc.nuiton.org/common/0.3/announcement/default</redmine.templateDirectory>
<!-- Default Release annoncement title -->
<releaseAnnouncementTitle>${session.topLevelProject.name} ${session.topLevelProject.version} released
</releaseAnnouncementTitle>
<skipReleasePublishAttachments>${skipPostRelease}</skipReleasePublishAttachments>
<skipReleaseUpdateVersion>${skipPostRelease}</skipReleaseUpdateVersion>
<skipReleasePublishNews>${skipPostRelease}</skipReleasePublishNews>
</properties>
<build>
<defaultGoal>validate</defaultGoal>
<plugins>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-redmineDomain</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<requireProperty>
<property>redmineDomain</property>
<message>"redmineDomain property must be specified."</message>
<regex>.+$</regex>
<regexMessage>"redmineDomain property can not be empty. Consider using the redmine-codelutin profile."</regexMessage>
</requireProperty>
</rules>
<ignoreCache>true</ignoreCache>
<failFast>true</failFast>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
<!--
- obtain redmine login
-->
<plugin>
<groupId>org.nuiton</groupId>
<artifactId>helper-maven-plugin</artifactId>
<executions>
<execution>
<id>get-redmine-login</id>
<goals>
<goal>share-server-secret</goal>
</goals>
<phase>validate</phase>
<configuration>
<serverId>redmine-${redmineDomain}</serverId>
<privateKeyOut>redmine.apiKey</privateKeyOut>
</configuration>
</execution>
</executions>
</plugin>
<!--
- publish attachments
- generate news announcement
- generate email announcement
- update version
- publish news announcement
- create next version
-->
<plugin>
<groupId>org.nuiton.jredmine</groupId>
<artifactId>jredmine-maven-plugin</artifactId>
<executions>
<execution>
<id>publish-attachments</id>
<goals>
<goal>publish-attachments</goal>
</goals>
<phase>verify</phase>
<configuration>
<filesFromProperties>
${redmine.collectedAttachments}
</filesFromProperties>
<skipPublishAttachments>
${skipReleasePublishAttachments}
</skipPublishAttachments>
</configuration>
</execution>
<execution>
<id>generate-announcements</id>
<goals>
<goal>generate-news-announcement</goal>
<goal>generate-email-announcement</goal>
</goals>
<phase>verify</phase>
<configuration>
<announceParameters>
<releaseProjectGroupId>
${session.topLevelProject.groupId}
</releaseProjectGroupId>
<releaseProjectArtifactId>
${session.topLevelProject.artifactId}
</releaseProjectArtifactId>
<releaseProjectVersion>
${session.topLevelProject.version}
</releaseProjectVersion>
</announceParameters>
<skipGenerateEmailAnnouncement>
${skipReleaseSendEmail}
</skipGenerateEmailAnnouncement>
<skipGenerateNewsAnnouncement>
${skipReleasePublishNews}
</skipGenerateNewsAnnouncement>
<urlDownload>
${redmine.url}/projects/${gitlabProjectName}/files
</urlDownload>
<artifactsFile>${redmine.collectedArtifacts}</artifactsFile>
</configuration>
</execution>
<execution>
<id>jredmine-release</id>
<goals>
<goal>update-version</goal>
<goal>publish-news</goal>
</goals>
<phase>install</phase>
<configuration>
<!-- for a multi-module just run on root project -->
<runOnce>true</runOnce>
<skipUpdateVersion>
${skipReleaseUpdateVersion}
</skipUpdateVersion>
<skipPublishNews>${skipReleasePublishNews}</skipPublishNews>
<!-- udpate-version -->
<closeVersion>true</closeVersion>
<!-- publish-news -->
<newsContentFile>
target/generated-sources/announcement/release-news-announcement.vm
</newsContentFile>
<newsSummary>${project.description}</newsSummary>
<newsTitle>
${releaseAnnouncementTitle}
</newsTitle>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- do not generate site if no src/site is found for module -->
<profile>
<id>no-site</id>
<activation>
<file>
<missing>src/site</missing>
</file>
</activation>
<properties>
<!-- no site generation -->
<maven.site.skip>true</maven.site.skip>
<maven.site.deploy.skip>true</maven.site.deploy.skip>
</properties>
</profile>
<profile>
<id>maven-3</id>
<activation>
<file>
<!-- This employs that the basedir expression is only recognized by Maven 3.x (see MNG-2363) -->
<exists>${basedir}</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<executions>
<execution>
<id>attach-descriptor</id>
<goals>
<goal>attach-descriptor</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- To collect deploy files (used to deploy application to a demo environnement -->
<profile>
<id>collect-deploy-files</id>
<properties>
<deploy.collectedFiles>
target/collect-deploy-files.txt
</deploy.collectedFiles>
</properties>
<build>
<defaultGoal>verify</defaultGoal>
<plugins>
<plugin>
<groupId>org.nuiton</groupId>
<artifactId>helper-maven-plugin</artifactId>
<executions>
<execution>
<id>collect-deploy-files</id>
<goals>
<goal>collect-files</goal>
</goals>
<phase>verify</phase>
<configuration>
<extraFiles>${deployFiles}</extraFiles>
<descriptionFile>
${deploy.collectedFiles}
</descriptionFile>
<includeAttached>false</includeAttached>
<includeSiteAttached>false</includeSiteAttached>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Pour changer la version du projet utilisant le hash du commit : -->
<profile>
<id>add-git-commit-id-to-project-version</id>
<build>
<defaultGoal>initialize</defaultGoal>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
<configuration>
<runOnlyOnce>true</runOnlyOnce>
<skipPoms>false</skipPoms>
<includeOnlyProperties>
<includeOnlyProperty>git\.commit\.id\.abbrev</includeOnlyProperty>
</includeOnlyProperties>
</configuration>
</plugin>
<plugin>
<groupId>org.nuiton</groupId>
<artifactId>helper-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>transform-project-version</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
<configuration>
<runOnce>true</runOnce>
<newVersionPattern>#V-rev#R</newVersionPattern>
<revision>#git.commit.id.abbrev</revision>
<versionKey>newVersion</versionKey>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>set</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile to build the pom project -->
<profile>
<id>internal</id>
<activation>
<file>
<exists>${basedir}/.pom-project-do-not-delete.txt</exists>
</file>
</activation>
<properties>
<gitlabGroupName>nuiton</gitlabGroupName>
<gitlabProjectName>pom</gitlabProjectName>
<!-- POM est le seul projet qui n'a pas de version de Java, donc on laisse
le contrôle sur tous les projets mais on met une version bidon -->
<javaVersion>1.8</javaVersion>
<!-- Pas un projet Java, donc pas d'animal-sniffer -->
<animal.sniffer.skip>true</animal.sniffer.skip>
<!-- Deploy on central release repository -->
<release.repository>${central.release.repository}</release.repository>
<repository.home.url>${central.release.home.url}</repository.home.url>
<maven.deploy.skip>false</maven.deploy.skip>
<!-- Pour garder la continuité, on reprend l'ancien formalisme pour les TAG pour ce projet -->
<gitflow.versionTagPrefix>pom-</gitflow.versionTagPrefix>
</properties>
</profile>
<!-- Redmine specific profile for codelutin -->
<profile>
<id>redmine-codelutin</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- //// Redmine configuration //// -->
<!-- ////////////////////////////////////////////////////////////////// -->
<!-- extra files to include in release -->
<redmine.releaseFiles/>
<!-- use this for a lib extra files -->
<redmine.libReleaseFiles>
target/${project.artifactId}-${project.version}-deps.zip,
target/${project.artifactId}-${project.version}-full.zip
</redmine.libReleaseFiles>
<redmineDomain>forge.codelutin.com</redmineDomain>
<redmine.safe>false</redmine.safe>
<redmine.url>https://${redmineDomain}</redmine.url>
<!-- <redmine.projectId>${gitlabProjectName}</redmine.projectId>-->
<redmine.xmlPath>${maven.root.dir}/target/changes/changes.xml</redmine.xmlPath>
<redmine.collectedArtifacts>${maven.root.dir}/target/collect-artifacts.txt</redmine.collectedArtifacts>
<redmine.collectedAttachments>${maven.root.dir}/target/collect-attachments.txt</redmine.collectedAttachments>
<redmine.deploymentUrl>${repository.home.url}</redmine.deploymentUrl>
<!-- since v 4.0, can execute some mojo not on root module -->
<redmine.runOnlyOnRoot>false</redmine.runOnlyOnRoot>
<!-- issues status to include in changelog -->
<redmine.statusIds>3,10,11,18,19</redmine.statusIds>
<!-- extra arguments used by release plugin -->
<arguments>-Ppost-release-profile,redmine-post-release-profile</arguments>
<issuesSystem>redmine</issuesSystem>
<issuesUrl>https://forge.codelutin.com/projects/${redmine.projectId}/issues</issuesUrl>
</properties>
</profile>
</profiles>
</project>