Hola Mundo con Google App Engine y Maven
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.
Follow me on twitter
excelente aporte!! lo probare esta noche, gracias.
saludos desde mexico
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.
Hola, muchas gracias por el apoyo.
Respecto al plugin, yo uso el WP-CodeBox
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???
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.
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
@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.
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.
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/
Muchas gracias. Disculpa por el retraso en la respuesta, lo que pasa es que tube una semana con mucho trabajo