Utilizzo di Apache Maven e del plug-in App Engine

Apache Maven è uno strumento di automazione della build per Java.

App Engine fornisce un plug-in Maven che puoi utilizzare per creare ed eseguire il deployment della tua app in App Engine. Il plug-in non supporta i progetti Enterprise Application Archive (EAR).

Prima di iniziare

  1. Determina se Maven è installato e quale versione hai eseguendo il seguente comando:

    mvn -v
    

    Se Maven è installato, verrà visualizzata una lunga stringa di informazioni che inizia con Apache Maven e seguita da un numero di versione, ad esempio 3.9.1.

  2. Se non hai installato Maven 3.9.1 o versioni successive:

    1. Scarica Maven 3.9.1 o versioni successive.
    2. Installa Maven 3.9.1 o versioni successive.

    I gestori di pacchetti Linux predefiniti, come apt o apt-get su Ubuntu e Debian, forniscono versioni precedenti di Maven e potrebbero non includere Maven 3.9.1 o versioni successive. Per installare una versione supportata su Linux, scarica l'archivio binario direttamente dal sito Apache Maven e segui le istruzioni di installazione.

  3. Se non l'hai ancora fatto, segui i passaggi qui per scaricare gcloud CLI, creare il tuo progetto Google Cloud e inizializzare l'app App Engine.

  4. Installa il componente app-engine-java di gcloud CLI:

    gcloud components install app-engine-java
    

Aggiunta del plug-in Maven di App Engine

Per utilizzare il plug-in Maven di App Engine, aggiungi le seguenti righe alla sezione plugins del file pom.xml del progetto:

<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.8.7</version>
   </plugin>
   <plugin>
     <groupId>org.eclipse.jetty</groupId>
     <artifactId>jetty-maven-plugin</artifactId>
     <version>9.4.56.v20240826</version>
   </plugin>
</plugins>
Il plug-in App Engine include il plug-in Jetty Maven, che puoi utilizzare per testare rapidamente l'applicazione senza creare un file WAR.

Utilizzo del plug-in Jetty Maven per testare l'app in locale

Durante la fase di sviluppo, puoi eseguire e testare la tua app in qualsiasi momento nel server di sviluppo richiamando il plug-in Jetty Maven.

Per eseguire l'app nel server di sviluppo:

  1. Crea la tua app, se non l'hai ancora fatto:

    mvn package
    
  2. Cambia directory al livello superiore del progetto (ad esempio, in myapp) ed esegui l'app richiamando Maven:

    mvn jetty:run
    
  3. Attendi l'avvio del server e utilizza il browser per visitare http://localhost:8080/ per accedere all'app.

  4. Arresta l'app e il server di sviluppo premendo Ctrl+C.

Creazione e deployment dell'app

Dopo aver aggiunto il plug-in Maven per App Engine al file pom.xml del tuo progetto, puoi utilizzare il seguente comando per creare ed eseguire il deployment dell'app:

mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID

Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud . Se il tuo file pom.xml specifica già l'ID progetto, non devi includere la proprietà -Dapp.deploy.projectId nel comando che esegui.

L'obiettivo package crea e pacchettizza l'app, mentre l'obiettivo appengine:deploy esegue le seguenti operazioni:

  1. Genera un ID versione univoco per la nuova versione dell'app.

  2. Esegue il deployment della nuova versione in App Engine.

  3. Instrada tutto il traffico alla nuova versione.

Modificare i valori predefiniti del deployment

Puoi modificare il comportamento di deployment predefinito passando i parametri nel comando appengine:deploy. Ad esempio, il seguente comando esegue il deployment del servizio definito nel file pom.xml in un progetto Google Cloud specifico, assegna un ID versione personalizzato al servizio e disattiva il routing automatico del traffico per la nuova versione:

mvn appengine:deploy -Dapp.deploy.projectId=PROJECT_ID -Dapp.deploy.version=VERSION_ID -Dapp.deploy.promote=False

Puoi anche utilizzare il comando appengine:deploy per implementare file di configurazione, come cron.yaml, dispatch.yaml e index.yaml.

Per saperne di più, consulta il appengine:deploy riferimento .

Passaggi successivi