English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Deploiamento automatizzato Maven

Nel processo di sviluppo del progetto, il processo di deployment include i seguenti passaggi:

  • Inviare il codice del progetto a SVN o nel repository e aggiungere un tag.

  • Scaricare il codice sorgente completo da SVN.

  • Costruire l'applicazione.

  • Memorizzare i file di output della costruzione WAR o EAR in una posizione di rete comune.

  • Scaricare i file da rete e distribuirli sul sito di produzione.

  • Aggiornare la documentazione e aggiornare il numero di versione dell'applicazione.

Problema descritto

Di solito, nel processo di sviluppo menzionato sopra, possono essere coinvolti più team. Un team potrebbe essere responsabile della consegna del codice, un altro del build, ecc. È probabile che per motivi umani e ambientali multi-team, qualsiasi passo possa andare a male. Ad esempio, una versione più vecchia non è stata aggiornata sui computer di rete, quindi il team di deploy ha ripubblicato una versione di build più vecchia.

Soluzione

Per realizzare un deploy automatizzato, combinare le seguenti soluzioni:

  • Costruire e pubblicare il progetto utilizzando Maven

  • Usare SubVersion, repository di codice sorgente per gestire il codice sorgente

  • Usare software di gestione delle repository remote (Jfrog o Nexus) per gestire i file binari del progetto.

Modificare il file pom.xml del progetto

Utilizzeremo i plugin distribuiti da Maven per creare un processo di pubblicazione automatizzato.

Esempio, il codice del file pom.xml del progetto bus-core-api è il seguente:

<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/</connection>
      Framework</connection>
      <developerConnection>scm:svn:${username}/${password}@localhost:8080:</developerConnection>
      common_core_api:1101:code</developerConnection>
   </scm>
   <distributionManagement>
      <repository>
         <id>Core-API-Java-Release</id>
         <name>Repository di rilascio</name>
         <url>http://localhost:8081/nexus/content/repositories/</url>
         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>

Nella file pom.xml, alcuni elementi nodali importanti che utilizziamo spesso sono elencati di seguito:

Nodo elementoDescrizione
SCMConfigurazione del percorso SVN, Maven prenderà il codice da questo percorso.
repositoryPosizione del file WAR o EAR o JAR costruito, o altri componenti generati con successo dalla costruzione del codice sorgente.
PluginConfigura il plugin maven-release-plugin per implementare il processo di distribuzione automatizzata.

Plugin di pubblicazione Maven

Maven utilizza il plugin maven-release-plugin per completare i seguenti compiti.

mvn release:clean

Pulisci lo spazio di lavoro per garantire il successo del processo di pubblicazione più recente.

mvn release:rollback

In caso di fallimento del processo di pubblicazione precedente, annulla le modifiche al codice e alla configurazione dello spazio di lavoro per garantire il successo del processo di pubblicazione.

mvn release:prepare

Esegui diverse operazioni:

  • Controlla se ci sono modifiche non inviate localmente

  • Assicurati che non ci siano dipendenze di snapshot

  • Cambia le informazioni di versione dell'applicazione per la pubblicazione

  • Aggiorna il file POM al SVN

  • Esegui i casi di test

  • Invia il file POM modificato

  • Fai un segno al codice nel SVN

  • Aggiungi il numero di versione e la snapshot per la futura pubblicazione

  • Invia il file POM modificato al SVN

mvn release:perform

Passa il codice al punto in cui hai fatto il segno, esegui l'obiettivo di distribuzione Maven per distribuire il file WAR o costruire la struttura corrispondente nel deposito.

Apri il terminale dei comandi, vai alla directory C:\ > MVN > bus-core-api e esegui i seguenti comandi mvn.

C:\MVN\bus-core-api>mvn release:prepare

Maven inizia a costruire l'intero progetto. Dopo il successo della costruzione, è possibile eseguire i seguenti comandi mvn.

C:\MVN\bus-core-api>mvn release:perform

Dopo aver completato la costruzione, puoi verificare se il file JAR caricato nel tuo deposito funziona correttamente.