2012-04-29 13 views
6

Me pregunto si existe una herramienta que cree una versión de mis proyectos de Grails. Algo que puedo distribuir en un CD o dispositivo USB que se ejecutará en todos los entornos.Crear una aplicación independiente con grails

Algo cuales

  • viene con un script de shell para iniciar la aplicación
  • búsquedas para un puerto del servidor libre en el sistema (sin mensaje de error si 8080 ya está en uso)
  • comienza un embarcadero servidor
  • inicia el navegador estándar con mi solicitud

¿alguien sabe de una herramienta de este tipo?

+0

¿Está asumiendo que ya tiene la JVM necesaria en la máquina de destino o está buscando una verdadera aplicación de servidor independiente? – cdeszaq

+0

una verdadera aplicación independiente sería genial, pero supongo que asumir que una JVM ya está disponible está bien. – rdmueller

Respuesta

15

Revisa standalone plugin hace que sea mucho más fácil distribuir una versión demo de tu aplicación Grails.

"El complemento independiente construye un archivo JAR ejecutable con una guerra incrustado construido a partir de su aplicación y un incrustado Tomcat 7 instancia. Este le permite construir un único archivo que puede ser corrida cualquier computadora con Java 5 o superior ejecutando java -jar standalone.jar. Esto puede ser conveniente para demostraciones o incluso instalaciones muy livianas de aplicaciones de poco tráfico Grails. "

documentos completos para el plugin independiente son here

Para preparar el archivo jar ...

grails -Dgrails.env=demo build-standalone our_cool_demo.jar 

para ejecutar la aplicación Grails (el puerto se especifica como un parámetro) ...

java -jar /path/to/jar_name.jar cool_demo localhost 9000


Actualizar:

No son en realidad 2 Grails plugins independientes:

  1. El 'standalone' de plugin descritos anteriormente que se basa en Tomcat7
  2. 'jetty-standalone' El plug-in que se basan en embarcadero y funciona de una manera similar

También hay algunas opciones basadas en Hudson y el proyecto Winstone, pero no hay un plugin Grails. Estos son algunos enlaces con más información: Build executable war using grails, maven and jetty, Executable WARs with Jetty y Winstone

+0

suena genial, pero no funciona para mí ... tiene que investigue un poco más ... – rdmueller

+1

También hay otro plugin independiente basado en embarcadero que puede funcionar. Vea la respuesta actualizada más arriba para más información. – Chris

+0

el plugin jetty no funciona, también :-( – rdmueller

2

Lo mejor que se me ocurre es utilizar una distribución de Linux en una memoria USB con grails instalado. Puede exportar la aplicación como un archivo WAR y luego crear una secuencia de comandos que contenga grails prod run-war para ejecutar al arrancar. Finalmente, puede abrir Firefox con firefox localhost:port#/AppName

El único inconveniente de esta opción es que necesita arrancar desde el dispositivo y eso creará un poco de tiempo de retraso. Sin embargo, las ventajas son que solo tiene que preocuparse por admitir un sistema operativo, no hay escaneo de puertos en el arranque y la simplicidad.

+0

Hm. Tal vez linux incluido con vmware player ... Pero eso significa que iz será demasiado grande para un CD ... – rdmueller

+1

@Ralf - Pero podría caber en un DVD – cdeszaq

1

La respuesta propuesta por Chris no funciona para mi, pero me proporcionaron un buen punto de partida: Parece que no es demasiado difícil de crear una aplicación independiente como:

  • embarcadero es un buen punto de partida: simplemente soltar los archivos de amarre en una memoria USB y desplegar su aplicación griales al dejar caer el archivo .war en el directorio webapps de amarre
  • crear una pequeño script groovy que busca dos (!) puertos libres. Necesitará el segundo para detener el servidor de nuevo
  • el guión maravilloso puede iniciar y detener el servidor
  • compilar la secuencia de comandos con el fin de evitar tener que instalar maravilloso en la máquina objetivo

eso es todo. Supongo que publicaré más detalles cuando encuentre más tiempo ...

Cuestiones relacionadas