Release d’une librairie au file de l’eau pour jenkins et maven

En ce moment je suis sur des problèmatiques de release avec mon projet maven.

Je voudrais que mon job jenkins soit capable de releaser automatiquement une version et mettre à jour les projets qui l’utilise comme dépendance.

Pour cela il y a deux petites commandes cli très utile. Mais d’abord, étudions comment structurer sont pom.xml

<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>com.wps.invoicing</groupId>
<artifactId>mp-invoicing</artifactId>
<version>6.1.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>Marketplace Invoicing</name>
<url>http://maven.apache.org</url>

<properties>
<majeur.version>6.1</artemis.version>
<patch.version>1</patch.version>
</properties>
</project>

Ici, la version majeur est variabilité et ne seras changé que sur les branches de releases. Par contre, la version patch va être incrémenter programmatiquement via le JenkinsFile.

 

Première commande, mettre le projet en version définitive :

puis commiter les changements

Ensuite, il faut deploy la version sur nexus.

Maintenant que notre version N a été publier, il ne reste plus qu’a incrémenter la version patch.

Ensuite, il faut updater la propriété (toujours dans le jenkinsFile)

Puis créer la nouvelle version snapshot, commit et deploy pour que tous les nouveaux projet l’ai