Home > Google App Engine > Hola Mundo con Google App Engine y Maven

Hola Mundo con Google App Engine y Maven

April 19th, 2009

Introducción

Mostrare como crear una aplicación web con maven y luego subirlo al App Engine de Google :)

Esta es una instalación muy básica al final del articulo listare unos recursos mas avanzados.

Para esta ejemplo, tienes que tener previamente instalado maven.

Obtener código de aplicación de Google App Engine

Si no tienes cuenta en Google App Engine, puedes crearlo de http://appengine.google.com/.

Una vez creada tu cuenta, crea tu primera aplicación y anota su código identificador.

Bajar e instalar Google App Engine

Bajar Google App Engine de http://code.google.com/appengine/downloads.html.

Descomprimirlo en la carpeta de tu preferencia.

  • En linux es generalmente “/usr/local”
  • En windows “c:\Program Files”

Adicionamos al PATH de sistema, la carpeta donde se encuentra el Google App Engine

  • En linux export PATH=/usr/local/appengine-java-sdk-1.2.0/bin:$PATH
  • En windows set PATH=”c:\Program Files\appengine-java-sdk-1.2.0\bin;%PATH%”

Para comprobar que esta instalado ejecutamos el siguiente comando:

  • En linux appcfg.sh version
  • En windows appcfg version

Y obtendremos el siguiente resultado parecido al siguiente:

Release: 1.2.0
Timestamp: Fri Apr 03 17:53:20 BOT 2009
API versions: [1.0]

java.vm.vendor: Sun Microsystems Inc.
java.vm.version: 11.2-b01
java.version: 1.6.0_12
os.name: Linux
os.version: 2.6.27-11-generic

Instalar los jars de Google App Engine en el repositorio de Maven

Una vez comprobado que el Google App Engine esta instalado, es necesario instalar alguna librerías de esta en maven.

Vamos a la carpeta donde esta instalado el Google App Engine y ejecutamos las siguientes instrucciones:

mvn install:install-file -Dfile=lib/appengine-tools-api.jar -DgroupId=com.google -DartifactId=appengine-tools -Dversion=1.2.0 -DgeneratePom=true -Dpackaging=jar

mvn install:install-file -Dfile=lib/user/appengine-api-1.0-sdk-1.2.0.jar -DgroupId=com.google -DartifactId=appengine-sdk-1.2.0-api -Dversion=1.2.0 -DgeneratePom=true -Dpackaging=jar

mvn install:install-file -Dfile=lib/shared/appengine-local-runtime-shared.jar -DgroupId=com.google -DartifactId=appengine-local-runtime-shared -Dversion=1.2.0 -DgeneratePom=true -Dpackaging=jar

mvn install:install-file -Dfile=lib/user/orm/datanucleus-appengine-1.0.0.final.jar -DgroupId=org.datanucleus -DartifactId=datanucleus-appengine -Dversion=1.0.0.final -DgeneratePom=true -Dpackaging=jar

Creamos Aplicación Web con Maven y Modificamos el pom.xml

Ve al directorio donde manejar tus pruebas y ejecuta el siguiente comando:

mvn archetype:create -DgroupId=appengine -DartifactId=holamundo -DarchetypeArtifactId=maven-archetype-webapp

Esto creara una carpeta holamundo y dentro de esta el archivo pom.xml.

Adicionamos las siguientes dependencias al pom.xml

	<dependency>
	    <groupId>com.google</groupId>
	    <artifactId>appengine-tools</artifactId>
	    <version>1.2.0</version>
	    <scope>provided</scope>
	</dependency>
	<dependency>
	    <groupId>com.google</groupId>
	    <artifactId>appengine-local-runtime-shared</artifactId>
	    <version>1.2.0</version>
	    <scope>provided</scope>
	</dependency>
	<dependency>
	    <groupId>com.google</groupId>
	    <artifactId>appengine-sdk-1.2.0-api</artifactId>
	    <version>1.2.0</version>
	    <scope>compile</scope>
	</dependency>

Creamos el archivo appengine-web.xml

Crea el archivo appengine-web.xml y lo colocamos en la carpeta WEB-INF, la misma carpeta donde se encuentra el web.xml.

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
	<application>id_de_tu_aplicacion</application>
	<version>1</version>
 
	<!-- Configure java.util.logging -->
 
	<system-properties>
		<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
	</system-properties>
 
</appengine-web-app>

Reemplaza “id_de_tu_aplicacion” por el código identificador que obtuviste al crear la aplicacion en Google App Engine.

Deploy de la aplicacion en Google App Engine

Ahora construimos la aplicación con maven.

mvn package

Luego hacemos deploy de la aplicacion a Google App engine.

  • En Linux appcfg.sh update target/holamundo
  • En Windows appcfg update target/holamundo

En el proceso te pedirá el password de tu cuenta google y Listo!!! :)

Solo ingresa a tu cuenta Google App Engine y abre la aplicación. :)

Si tienes comentarios y correcciones no duden a hacérmelo saber.

Referencias

Renan Huanca Google App Engine

  1. code.leader
    April 20th, 2009 at 11:06 | #1

    excelente aporte!! lo probare esta noche, gracias.

    saludos desde mexico

  2. Andres
    April 21st, 2009 at 09:06 | #2

    Gracias por el aporte.

    Offtopic: Quisiera saber como haces para pegar el código en wordpress y que te quede identando.

    ¿Que plug-in ocupas?

    Muchas gracias.

  3. April 21st, 2009 at 09:13 | #3

    Hola, muchas gracias por el apoyo.
    Respecto al plugin, yo uso el WP-CodeBox

  4. Rubén Aguilera
    April 27th, 2009 at 06:24 | #4

    Hola,

    Sigo los pasos y me da el siguiente error:

    Unable to upload app: Error posting to URL: http://appengine.google.com/api/appv
    ersion/create?app_id=holamundorubenagui&version=1&
    400 Bad Request
    Invalid runtime specified.

    Te ha salido este error alguna vez??? Sabes porque puede ser???

  5. April 27th, 2009 at 09:25 | #5

    Humm. el único error que tuve fue cuando quise subir una aplicación con custom tags definidos en la carpeta WEB-INF/tags. La aplicación creada por maven no tiene custom tags.

  6. April 27th, 2009 at 09:29 | #6

    Segun lo que vi en este enlace http://code.google.com/appengine/kb/java.html#runtime
    Es que parece que no estas especificando con que usuario estas haciendo deploy.
    Para hacer esto tienes que usar la opcion -e tu@email.com

  7. Rubén Aguilera
    April 27th, 2009 at 09:32 | #7

    @Renan Huanca

    El caso es que por lo que he leido es un problema de que todavía no me he registrado para Java, pero es que por más que me registro me dice que me ha mandado un e-mail con más instrucciones, pero ese e-mail nunca llega.

    Por cierto, sabes como podría eliminar las aplicaciones que he creado pero que todavía no tienen el deploy hecho???

    Saludos.

  8. Manuel
    August 19th, 2009 at 07:26 | #8

    Buenas. Yo estoy probando con google app engine, y como uso habitualmente maven, quería “mavenizar” el proyecto. El caso es que me he encontrado tu tutorial, que está muy bien, y por curiosidad me he ido al repositorio central de maven para ver si estaban los artefactos. Y cual ha sido mi sorpresa al ver que ya están presentes. La dirección es la siguiente:

    http://repo2.maven.org/maven2/com/google/appengine/

    Por lo que he podido ver por encima, está todo lo necesario. Así que puede que el paso de usar mvn install:install-file se podría obviar.

  9. Manuel
    January 13th, 2010 at 07:23 | #9

    Buenas. Soy commiter del proyecto maven-gae-plugin. Es un plugin para trabajar con GAE en maven. La dirección es la siguiente:

    http://code.google.com/p/maven-gae-plugin/

  10. January 14th, 2010 at 20:44 | #10

    Muchas gracias. Disculpa por el retraso en la respuesta, lo que pasa es que tube una semana con mucho trabajo :)

  1. March 30th, 2010 at 19:43 | #1