Questa pagina spiega come gestire un progetto App Engine per la tua API Cloud Endpoints Frameworks utilizzando Apache Maven. Apache Maven è uno strumento di comprensione e gestione di progetti software in grado di creare File WAR (Web Application Archive) per il deployment in App Engine. Google fornisce un plug-in e gli archetipi Maven supportati da Maven 3.3.9 o maggiori.
Maven scarica le librerie Java dall'SDK di App Engine. Puoi utilizzare Maven per testare l'app localmente ed eseguirne il deployment in App Engine.
Prima di iniziare
- Utilizza la console Google Cloud per creare e configurare il tuo progetto Google Cloud:
- Seleziona o crea un nuovo progetto Google Cloud.
- Se devi creare un'applicazione App Engine per il tuo progetto, segui le istruzioni per selezionare la regione in cui vuoi che si trovi l'applicazione App Engine.
- Scarica e installa gcloud CLI, quindi inizializza
Google Cloud CLI.
Se hai già installato Google Cloud CLI e vuoi impostarla su utilizza un ID progetto Google Cloud diverso da quello inizializzato consulta Gestione dell'interfaccia alla gcloud CLI configurazioni.
- Installa il componente
app-engine-java
della gcloud CLI:gcloud components install app-engine-java
Nota: per assicurarti di avere l'ultima versione dell' gcloud CLI per Java, esegui
gcloud components update
. - Se non hai Java, scarica, installa e configuralo.
- Imposta i flag del compilatore Java in
pom.xml
del progetto per specificare il codice a byte Java 8: - Devi aver installato Apache Maven 3.3.9 o versioni successive.
Per determinare la tua versione Maven, esegui questo comando:
mvn -v
- Se non hai installato la versione corretta di Maven:
Aggiunta del plug-in Maven di App Engine a un progetto esistente (facoltativo)
Per utilizzare il
plug-in Maven di App Engine
in un progetto Maven esistente, aggiungi quanto segue alla
sezione plugins
del file pom.xml
del progetto:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.7.0</version>
</plugin>
Scegliere un'archetipo App Engine
Gli archetipi Maven consentono agli utenti di creare progetti Maven utilizzando modelli che coprono scenari comuni. App Engine sfrutta questa funzionalità di Maven per fornire alcuni utili archetipi App Engine su Maven Central. Seleziona un'archetipo App Engine appropriato per la tua app:
Tipo di applicazione | Artefatto | Descrizione |
---|---|---|
Framework di Endpoints per App Engine | endpoints-skeleton-archetype |
Genera un nuovo Endpoints Frameworks vuoto per il progetto API backend App Engine pronto per le tue classi e risorse, con i file e le directory richiesti. |
Framework di Endpoints per App Engine | hello-endpoints-archetype |
Genera un progetto di framework Endpoints di partenza per l'API backend App Engine, pronto per essere creato ed eseguito. |
Creazione di un nuovo progetto mediante Maven
Durante la creazione del progetto, Maven ti chiede di fornire groupId
, artifactId
,
version
e package
per il progetto.
Termine | Significato |
---|---|
groupId |
Uno spazio dei nomi all'interno di Maven per tenere traccia dei tuoi artefatti. Quando gli utenti utilizzano il tuo progetto nel proprio progetto Maven, questo funge da attributo della dipendenza che finiscono per specificare. |
artifactId |
Il nome del progetto in Maven. Viene inoltre specificato dai consumer del progetto quando dipendono da te nei propri progetti Maven. |
version |
La versione Maven iniziale con cui vuoi generare il progetto. Ti consigliamo di aggiungere il suffisso version a -SNAPSHOT perché questo fornisce assistenza nel plug-in di release Maven per le versioni in fase di sviluppo. Per ulteriori informazioni, consulta la guida di Maven all'utilizzo del plug-in di release. |
package |
Il pacchetto Java creato durante la generazione. |
Creazione di una nuova app Endpoints Frameworks
In questa sezione viene descritta la creazione di un nuovo framework di Endpoints per la versione 2.0 progetto.
hello-endpoints-archetype
fornisce un esempio di utilizzo dei plug-in, tra cui il plug-in Maven per App Engine e il plug-in Maven per Endpoints Frameworks.
hello-endpoints-archetype
genera un'API Greetings di esempio
utilizzando Endpoints Frameworks versione 2.0. Inoltre, funge da esempio per la migrazione delle applicazioni Endpoints Frameworks 1.0 alla versione 2.0.
Il valore README.md
generato con l'archetipo fornisce informazioni su
in cui è avvenuta la migrazione.
Per creare un progetto di archetipo di API di backend di App Engine per Frameworks Endpoints:
Cambia directory in quella in cui vuoi compilare il progetto.
Esegui il seguente comando Maven:
mvn archetype:generate -Dgoogle-cloud-project=[YOUR-PROJECT-ID] -Dappengine-plugin=2.7.0 -Dendpoints-frameworks=2.1.0 -Dendpoints-plugin=1.0.2 -Dappengine-sdk=1.9.98 -Dfilter=com.google.appengine.archetypes:
Dove:
-Dgoogle-cloud-project
è impostato sull'ID progetto.-Dappengine-plugin
sia impostato sulla versione più recente del plug-in Maven di App Engine.-Dendpoints-frameworks
sia impostato sulla versione più recente del framework Endpoints per App Engine per le dipendenze Maven.-Dendpoints-plugin
sia impostato sulla versione più recente del plug-in Maven Endpoints Framework per App Engine.
Fornisci il numero corrispondente a
hello-endpoints-archetype
.Seleziona la versione più recente dall'elenco visualizzato delle versioni di archetipo disponibili.
Quando viene richiesto a
Define value for property 'groupId'
, fornisci lo spazio dei nomi per la tua app; ad esempio, fornisci il valorecom.example.helloendpoints
.Quando viene richiesto di
Define value for property 'artifactId'
, fornisci il progetto nome; ad esempio, fornisci il valorehelloendpoints
.Quando ti viene chiesto di
Define value for property 'version'
, accetta il valore predefinito valore.Quando ti viene chiesto di
Define value for property 'package'
, accetta il valore predefinito.Quando ti viene chiesto di confermare le tue scelte, accetta il valore predefinito inserendo
Y
.Attendi il completamento della generazione del progetto. quindi cambia directory nuova directory del progetto, ad esempio
helloendpoints/
.Compila il progetto.
mvn clean package
Attendi il completamento della compilazione del progetto. Al termine del progetto, viene visualizzato un messaggio simile al seguente:
[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.062 s [INFO] Finished at: 2017-02-28T00:28:03-08:00 [INFO] Final Memory: 27M/485M [INFO] ------------------------------------------------------------------------
Per eseguire il test in locale ed eseguire il deployment del progetto nell'ambiente standard di App Engine ambiente, rivedere Gestione, test e deployment di un progetto Maven.
Inoltre, puoi generare librerie client Java per l'API Greeting mediante il plug-in Maven per framework di endpoint:
mvn endpoints-framework:clientLibs
Il seguente diagramma mostra il layout di base del progetto dell'API Greetings:
README.md
contiene informazioni sull'esempio generato.Greetings.java
contiene una definizione di API per un'API di saluti di esempio.Constants.java
contiene le costanti utilizzate dall'API di esempio Greetings.HelloGreeting.java
contiene un contenitore per i messaggi ricevuti e inviati dall'API di esempio Greetings.index.html
contiene un'interfaccia utente semplice per chiamare l'API di backend Greetings.base.js
contiene JavaScript necessario all'UI per effettuare richieste di backend.build.gradle
Una volta generato, l'esempio supporta anche Gradle e altre informazioni su questa funzionalità sono disponibili inREADME.md
.
Compilazione e creazione dell'applicazione
Per compilare un'applicazione creata con gli archetipi Maven App Engine:
Passa alla directory principale del progetto, ad esempio
guestbook/
.Esegui Maven:
mvn clean package
Attendi il completamento della compilazione del progetto. Al termine del progetto, appare un messaggio simile al seguente:
BUILD SUCCESS Total time: 10.724s Finished at: 2016-08-04T16:18:24-07:00 Final Memory: 24M/213M
Test dell'applicazione con il server di sviluppo
Durante la fase di sviluppo, puoi eseguire e testare la tua applicazione in qualsiasi momento sul server di sviluppo eseguendo il plug-in Maven per App Engine.
Per testare l'app Endpoints Frameworks per App Engine:
Se non l'hai ancora fatto, crea la tua app:
mvn clean package
Esegui l'esempio in locale:
mvn appengine:run
Attendi l'avvio del server. Quando il server è completamente avviato con la tua applicazione in esecuzione, viene visualizzato un messaggio simile al seguente:
[INFO] GCLOUD: INFO ### devappserver2.py:764] Skipping SDK update check. [INFO] GCLOUD: INFO ### api_server.py:268] Starting API server at: http://localhost:34199 [INFO] GCLOUD: INFO ### dispatcher.py:199] Starting module "default" running at: http://localhost:8080 [INFO] GCLOUD: INFO ### admin_server.py:116] Starting admin server at: http://localhost:8000 [INFO] GCLOUD: ### com.google.appengine.tools.development.SystemPropertiesManager setSystemProperties
Utilizza il browser per andare all'indirizzo
http://localhost:8080/
per accedere all'app.Spegni l'applicazione e il server di sviluppo premendo
Control+C
.
Specifica di una porta per i test locali
Quando esegui l'applicazione nel server di sviluppo locale, la porta predefinita è
8080
. Puoi modificare questo valore predefinito modificando la voce del plug-in per
appengine-maven-plugin
. Ad esempio, puoi specificare porta e indirizzo nel
pom.xml
della directory delle applicazioni:
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.7.0</version>
<configuration>
<devserver.host>0.0.0.0</devserver.host>
<devserver.port>8181</devserver.port>
</configuration>
</plugin>
</plugins>
In questo esempio, <devserver.port>
imposta la porta su 8181
anziché
è predefinito e l'indirizzo 0.0.0.0
è specificato, il che significa che lo sviluppo
il server rimane in ascolto delle richieste provenienti dalla rete locale.
Il prefisso devserver
è facoltativo; puoi utilizzare <port>8181</port>
.
Debug sul server di sviluppo
Per eseguire il debug di un'applicazione in esecuzione in locale, imposta jvmFlags
nella configurazione del plug-in per abilitare il debug sulla JVM sottostante, ad esempio:
<configuration>
<jvmFlags>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</jvmFlag>
</jvmFlags>
</configuration>
Deployment dell'applicazione
Per eseguire il deployment della tua applicazione:
mvn appengine:deploy
L'obiettivo appengine:deploy
e tutti gli altri obiettivi nel plug-in Maven di App Engine hanno parametri associati che puoi utilizzare. Per un elenco completo degli obiettivi
e parametri, consulta gli
Obiettivi e parametri del plug-in Maven per App Engine.
Passaggi successivi
- Esplora il codice del plug-in Maven per App Engine e segnala i problemi relativi GitHub.
- Scopri come specificare i parametri per gli obiettivi facendo riferimento a Obiettivi e parametri Maven di App Engine.
- Esplora il codice del plug-in Maven di Endpoints Frameworks e segnala i problemi su GitHub.
- Scopri come specificare i parametri per gli obiettivi facendo riferimento al plug-in Maven di Cloud Endpoints Frameworks.