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.