En esta página se explica cómo gestionar un proyecto de App Engine para tu API de Cloud Endpoints Frameworks mediante Apache Maven. Apache Maven es una herramienta de gestión y comprensión de proyectos de software capaz de crear archivos Web Application Archive (WAR) para implementarlos en App Engine. Google proporciona un complemento y arquetipos de Maven compatibles con Maven 3.3.9 o versiones posteriores.
Maven descarga las bibliotecas Java del SDK de App Engine. Puedes usar Maven para probar tu aplicación de forma local y desplegarla en App Engine.
Antes de empezar
- Usa la Google Cloud consola para crear y configurar tu Google Cloud proyecto:
- Selecciona o crea un Google Cloud proyecto.
- Si necesitas crear una aplicación de App Engine para tu proyecto, sigue las indicaciones para seleccionar la región en la que quieras ubicarla.
- Descarga e instala gcloud CLI y, a continuación, inicializa la CLI de Google Cloud.
Si ya tienes instalada la CLI de Google Cloud y quieres configurarla para que use un Google Cloud ID de proyecto distinto del que usaste para inicializarla, consulta Gestionar configuraciones de la CLI de gcloud.
- Instala el componente
app-engine-javade gcloud CLI:gcloud components install app-engine-java
Nota: Para asegurarte de que tienes la versión más reciente de la CLI de gcloud para Java, ejecuta
gcloud components update. - Si no tienes Java, descárgalo, instálalo y configúralo.
- Define las marcas del compilador de Java en el archivo
pom.xmlde tu proyecto para especificar el código de bytes de Java 8: - Debes tener instalada la versión 3.3.9 de Apache Maven o una posterior.
Para determinar tu versión de Maven, ejecuta el siguiente comando:
mvn -v
- Si no tienes instalada la versión adecuada de Maven:
Añadir el complemento Maven de App Engine a un proyecto (opcional)
Para usar el complemento Maven de App Engine en un proyecto Maven, añade lo siguiente a la sección plugins del archivo pom.xml del proyecto:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.8.1</version>
</plugin>Elegir un arquetipo de App Engine
Los arquetipos de Maven permiten a los usuarios crear proyectos de Maven mediante plantillas que abarcan situaciones habituales. App Engine aprovecha esta función de Maven para proporcionar algunos arquetipos de App Engine útiles en el repositorio central de Maven. Selecciona un arquetipo de App Engine adecuado para tu aplicación:
| Tipo de aplicación | Artefacto | Descripción |
|---|---|---|
| Cloud Endpoints Frameworks para App Engine | endpoints-skeleton-archetype |
Genera un proyecto de API de backend de Endpoints Frameworks para App Engine nuevo y vacío, listo para tus propias clases y recursos, con los archivos y directorios necesarios. |
| Cloud Endpoints Frameworks para App Engine | hello-endpoints-archetype |
Genera un proyecto de API de backend de Endpoints Frameworks para App Engine inicial, listo para compilarse y ejecutarse. |
Crear un proyecto con Maven
Durante la creación del proyecto, Maven te pedirá que proporciones el groupId, el artifactId, el version y el package del proyecto.
| Término | Significado |
|---|---|
groupId |
Un espacio de nombres en Maven para hacer un seguimiento de tus artefactos. Cuando los usuarios consumen tu proyecto en su propio proyecto de Maven, este se convierte en un atributo de la dependencia que especifican. |
artifactId |
El nombre de tu proyecto en Maven. También lo especifican los consumidores de tu proyecto cuando dependen de ti en sus propios proyectos de Maven. |
version |
La versión inicial de Maven con la que quieres que se genere tu proyecto. Es recomendable que version vaya seguido de -SNAPSHOT, ya que así se ofrece compatibilidad con el complemento de lanzamiento de Maven para las versiones que están en desarrollo. Para obtener más información, consulta la guía de Maven sobre cómo usar el complemento de lanzamiento. |
package |
El paquete de Java creado durante la generación. |
Crear una aplicación de Endpoints Frameworks
En esta sección se describe cómo crear un proyecto de Endpoints Frameworks versión 2.0.
El hello-endpoints-archetype proporciona un ejemplo de uso de complementos, incluido el complemento Maven para App Engine y el complemento Maven para Endpoints Frameworks.
hello-endpoints-archetype genera una API Greetings de ejemplo
con Endpoints Frameworks versión 2.0. También sirve de ejemplo para migrar tus aplicaciones de Endpoints Frameworks versión 1.0 a Endpoints Frameworks versión 2.0.
El README.md que se genera con el arquetipo proporciona información sobre dónde se ha producido la migración.
Para crear un proyecto de arquetipo de API de backend de Endpoints Frameworks para App Engine, haz lo siguiente:
Cambia al directorio en el que quieras compilar el proyecto.
Ejecuta el siguiente comando de Maven:
mvn archetype:generate -Dgoogle-cloud-project=[YOUR-PROJECT-ID] -Dappengine-plugin=2.8.1 -Dendpoints-frameworks=2.1.0 -Dendpoints-plugin=1.0.2 -Dappengine-sdk=1.9.98 -Dfilter=com.google.appengine.archetypes:Donde:
-Dgoogle-cloud-projectse ha asignado al ID de tu proyecto.-Dappengine-pluginse ha definido en la versión más reciente del plugin Maven de App Engine.-Dendpoints-frameworksse ha definido en la versión más reciente de Endpoints Frameworks para App Engine para las dependencias de Maven.-Dendpoints-pluginse ha configurado con la versión más reciente del complemento Maven de Endpoints Frameworks para App Engine.
Indica el número correspondiente a
hello-endpoints-archetype.Seleccione la versión más reciente de la lista de versiones de arquetipo disponibles que se muestra.
Cuando se le pida que
Define value for property 'groupId', proporcione el espacio de nombres de su aplicación; por ejemplo, el valorcom.example.helloendpoints.Cuando se le pida que
Define value for property 'artifactId', proporcione el nombre del proyecto. Por ejemplo, proporcione el valorhelloendpoints.Cuando se te pida que
Define value for property 'version', acepta el valor predeterminado.Cuando se te pida que
Define value for property 'package', acepta el valor predeterminado.Cuando se te pida que confirmes tus opciones, acepta el valor predeterminado introduciendo
Y.Espera a que se termine de generar el proyecto. A continuación, cambia el directorio por el directorio del nuevo proyecto, por ejemplo,
helloendpoints/.Compila el proyecto.
mvn clean packageEspera a que se compile el proyecto. Cuando el proyecto finalice correctamente, se mostrará un mensaje similar al siguiente:
[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] ------------------------------------------------------------------------Para probar el proyecto de forma local y desplegarlo en el entorno estándar de App Engine, consulta el artículo Gestionar, probar y desplegar un proyecto de Maven.
Además, puedes generar bibliotecas de cliente de Java para la API Greeting mediante el plugin Maven de Endpoints Frameworks:
mvn endpoints-framework:clientLibs
En el siguiente diagrama se muestra el diseño básico del proyecto de la API Greetings:

README.mdcontiene información sobre el ejemplo generado.Greetings.javacontiene una definición de API para una API de saludos de ejemplo.Constants.javacontiene constantes que usa la API Greetings de ejemplo.HelloGreeting.javacontiene un contenedor para los mensajes recibidos y enviados desde la API Greetings de ejemplo.index.htmlcontiene una interfaz de usuario sencilla para llamar a la API Greetings del backend.base.jscontiene el JavaScript necesario para que la interfaz de usuario haga solicitudes de backend.build.gradleuna vez generado, el ejemplo también admite Gradle y más información sobre esta función en laREADME.md.
Compilar y compilar tu aplicación
Para crear una aplicación creada con los arquetipos de Maven App Engine, sigue estos pasos:
Cambia al directorio principal de tu proyecto. Por ejemplo,
guestbook/.Ejecuta Maven:
mvn clean packageEspera a que se compile el proyecto. Cuando el proyecto finalice correctamente, se mostrará un mensaje similar al siguiente:
BUILD SUCCESS Total time: 10.724s Finished at: 2016-08-04T16:18:24-07:00 Final Memory: 24M/213M
Probar una aplicación con el servidor de desarrollo
Durante la fase de desarrollo, puedes ejecutar y probar tu aplicación en cualquier momento en el servidor de desarrollo ejecutando el complemento Maven de App Engine.
Para probar tu aplicación de Endpoints Frameworks para App Engine, sigue estos pasos:
Si aún no lo has hecho, compila tu aplicación:
mvn clean packageEjecuta el ejemplo de forma local:
mvn appengine:runEspera a que se inicie el servidor. Cuando el servidor se haya iniciado por completo y tu aplicación esté en ejecución, se mostrará un mensaje similar al siguiente:
[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 setSystemPropertiesUsa tu navegador para ir a
http://localhost:8080/y acceder a tu aplicación.Cierra la aplicación y el servidor de desarrollo pulsando
Control+C.
Especificar un puerto para las pruebas locales
Cuando ejecutas tu aplicación en el servidor de desarrollo local, el puerto predeterminado es 8080. Puedes cambiar este valor predeterminado modificando la entrada del complemento de appengine-maven-plugin. Por ejemplo, puedes especificar el puerto y la dirección en el archivo pom.xml del directorio de tu aplicación:
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.8.1</version>
<configuration>
<devserver.host>0.0.0.0</devserver.host>
<devserver.port>8181</devserver.port>
</configuration>
</plugin>
</plugins>En este ejemplo, <devserver.port> define el puerto 8181 en lugar del predeterminado y se especifica la dirección 0.0.0.0, lo que significa que el servidor de desarrollo escucha las solicitudes procedentes de la red local.
El prefijo devserver es opcional. Puedes usar <port>8181</port> en su lugar.
Depurar en el servidor de desarrollo
Para depurar una aplicación que se ejecuta de forma local, define jvmFlags en la configuración del complemento para habilitar la depuración en la JVM subyacente. Por ejemplo:
<configuration>
<jvmFlags>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</jvmFlag>
</jvmFlags>
</configuration>
Desplegar una aplicación
Para desplegar tu aplicación, sigue estos pasos:
mvn appengine:deploy
El appengine:deploy y todos los demás objetivos del complemento de Maven de App Engine tienen parámetros asociados que puedes usar. Para ver una lista completa de objetivos y parámetros, consulta Objetivos y parámetros del complemento de Maven de App Engine.
Siguientes pasos
- Consulta el código del complemento Maven de App Engine e informa de los problemas en GitHub.
- Para saber cómo especificar los parámetros de los objetivos, consulte Parámetros y objetivos de Maven de App Engine.
- Consulta el código del complemento Endpoints Frameworks Maven e informa de los problemas en GitHub.
- Para saber cómo especificar los parámetros de los objetivos, consulta el complemento Maven de Cloud Endpoints Frameworks.