Maven - Automatisation du déploiement
Dans le développement d'un projet, normalement un processus de déploiement comprend les étapes suivantes:
Archivez le code de tous les projets en cours dans le SVN (système de contrôle de version) ou dans le référentiel de code source et étiquetez-le.
Téléchargez le code source complet de SVN.
Créez l'application.
Stockez le fichier de sortie de construction WAR ou EAR dans un emplacement réseau commun.
Récupérez le fichier du réseau et déployez le fichier sur le site de production.
Mise à jour de la documentation avec la date et le numéro de version mis à jour de l'application.
Énoncé du problème
Il y a normalement plusieurs personnes impliquées dans le processus de déploiement mentionné ci-dessus. Une équipe peut gérer l'archivage du code, une autre peut gérer la compilation et ainsi de suite. Il est très probable que n'importe quelle étape puisse être manquée en raison des efforts manuels impliqués et en raison de l'environnement multi-équipes. Par exemple, l'ancienne version ne peut pas être remplacée sur la machine réseau et l'équipe de déploiement a déployé à nouveau l'ancienne version.
Solution
Automatisez le processus de déploiement en combinant les éléments suivants:
- Maven, pour construire et publier des projets.
- SubVersion, référentiel de code source, pour gérer le code source.
- Remote Repository Manager (Jfrog / Nexus) pour gérer les binaires du projet.
Mettre à jour le projet POM.xml
Nous utiliserons le plug-in Maven Release pour créer un processus de publication automatisé.
Par exemple: projet bus-core-api 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>bus-core-api</groupId>
<artifactId>bus-core-api</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<scm>
<url>http://www.svn.com</url>
<connection>scm:svn:http://localhost:8080/svn/jrepo/trunk/
Framework</connection>
<developerConnection>scm:svn:${username}/${password}@localhost:8080:
common_core_api:1101:code</developerConnection>
</scm>
<distributionManagement>
<repository>
<id>Core-API-Java-Release</id>
<name>Release repository</name>
<url>http://localhost:8081/nexus/content/repositories/
Core-Api-Release</url>
</repository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0-beta-9</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<goals>deploy</goals>
<scmCommentPrefix>[bus-core-api-release-checkin]-<
/scmCommentPrefix>
</configuration>
</plugin>
</plugins>
</build>
</project>
Dans Pom.xml, voici les éléments importants que nous avons utilisés -
Sr.No. | Élément et description |
---|---|
1 | SCM Configure l'emplacement SVN à partir duquel Maven extraira le code source. |
2 | Repositories L'emplacement où le WAR / EAR / JAR construit ou tout autre artefact sera stocké une fois la construction du code réussie. |
3 | Plugin maven-release-plugin est configuré pour automatiser le processus de déploiement. |
Plug-in de version Maven
Le Maven effectue les tâches utiles suivantes en utilisant maven-release-plugin.
mvn release:clean
Il nettoie l'espace de travail au cas où le dernier processus de publication échouerait.
mvn release:rollback
Annulez les modifications apportées au code et à la configuration de l'espace de travail au cas où le dernier processus de publication échouerait.
mvn release:prepare
Effectue plusieurs opérations, telles que -
Vérifie s'il y a des modifications locales non validées ou non.
Garantit qu'il n'y a pas de dépendances SNAPSHOT.
Modifie la version de l'application et supprime SNAPSHOT de la version pour rendre la publication.
Mettez à jour les fichiers pom vers SVN.
Exécutez des cas de test.
Validez les fichiers POM modifiés.
Taguer le code en subversion
Incrémentez le numéro de version et ajoutez SNAPSHOT pour la prochaine version.
Validez les fichiers POM modifiés dans SVN.
mvn release:perform
Extrait le code à l'aide de la balise précédemment définie et exécutez l'objectif de déploiement Maven, pour déployer la guerre ou l'artefact construit dans le référentiel.
Ouvrons la console de commande, allons à la C:\ > MVN >bus-core-api répertoire et exécutez ce qui suit mvn commander.
>mvn release:prepare
Maven commencera à construire le projet. Une fois la construction réussie, exécutez ce qui suitmvn commander.
>mvn release:perform
Une fois la construction réussie, vous pouvez vérifier le fichier JAR téléchargé dans votre référentiel.