2009-11-24 11 views
15

Hemos estado usando Grails por un tiempo y ahora hemos pasado por algunas versiones de Grails. No siempre queremos migrar nuestras aplicaciones 'antiguas' de inmediato, pero a menudo usamos una versión más nueva para un nuevo desarrollo. Cambiar las variables de entorno de Windows es inconveniente ya que a veces tengo que trabajar en dos proyectos relacionados al mismo tiempo que ejecuto diferentes versiones de Grails.¿Cómo gestionas el desarrollo con múltiples versiones de Grails usando Windows?

En Linux, probablemente crearía scripts de envoltura o alias para permitirme especificar en la línea de comandos un cambio de versión, pero no creo que Grails lo admita.

¿Cómo otros que necesitan codificar contra versiones múltiples de Grails que lo manejan?

Actualización:
he creado un archivo de gv.bat para establecer las variables de entorno GRAILS\_HOME y PATH. Agregué una variable de entorno GRAILS\_INSTALLS (c:\usr\local\grails en mi caja) y eliminé la referencia %GRAILS_HOME%\bin de PATH.

gv.bat

@echo off 
SET GRAILS_HOME=%GRAILS_INSTALLS%\grails-%1 
SET PATH=%GRAILS_HOME%\bin;%PATH% 

para hacer cualquier Griales trabajan corro> gv 1.1.2 o lo que sea la versión que necesito para trabajar. Me gustaría descubrir cómo hacer un reemplazo de cadena en el PATH para cambiar el valor, pero eso resultó ser difícil para mí

Respuesta

4

ahora es mucho más tarde, y no hay otra manera de gestionar sus versiones Groovy y Grails si se utiliza la línea de comandos para ejecutarlos:. Posh-gvm https://github.com/flofreud/posh-gvm

GVM es una herramienta para. Unix/Mac entornos para gestionar Groovy/Gradle/Grails/más versiones, y alguien finalmente hizo un equivalente de Windows llamado Posh-gvm (abreviatura de Power-shell GVM). Es muy útil y fácil de usar para descargar y configurar su medio ambiente t para cualquier versión de estas herramientas que desee usar en cualquier momento.

Si está utilizando un IDE, posh-gvm sigue siendo una excelente manera de descargar/instalar las nuevas versiones a medida que salen, y su IDE puede apuntar a los directorios de instalación de posh-gvm.

+0

Ya no estoy desarrollando en Windows, pero definitivamente es bueno saberlo. – ahanson

+0

No pude encontrar la manera de instalar posh-gvm. La documentación del sitio web dice que debe instalarse escribiendo "Install-Package posh-gvm", pero esto simplemente indica "no se encontró ninguna coincidencia" –

+0

También se probó el método "Vía script corto", que da "SecurityError: (:) [Import-Module ], PSSecurityException "al ejecutar" Import-Module posh-gvm ", incluso ejecutándose como administrador. Intenté ambas versiones de PowerShell de 32 y 64 bits, sin suerte instalando esto. –

8

Tengo un par de archivos bat que cambian el GRAILS_HOME y el sistema PATH según qué versión estoy usando

No es la solución más bonita en absoluto, pero al menos funciona para mí.

+1

¿Son largo, ¿le importaría publicar el que se actualiza la variable PATH? – ahanson

4

IntelliJ le permite especificar qué versión de Grails aplicar como configuración de faceta por proyecto. El plugin de Eclipse aún no ha alcanzado este nivel de abstracción.

+0

El nuevo plugin de Eclipse, de hecho, le permite establecer qué versión de Grails usar por proyecto. O al menos la nueva versión de Springsource del plugin lo hace. – Blacktiger

+0

¿Puedes citar una fuente? Escuché que estaban trabajando para permitirlo, pero esa configuración de la versión GROOVY tenía que ser lo primero. – billjamesdev

0

Consulte this link, explica exactamente cómo hacerlo usando cygwin y mapeando varios alias.

Además, aprenda cómo funciona el directorio de complementos y repítalo varias veces para cada versión de Grails. También uso plugins globales para los que yo utilizo a menudo, como Tomcat, hibernación, DBUtil, consola, etc.

decir que quiere cambiar entre 1.1 y 1.2M4 - usted podría tener los directorios de instalación con los plugins que está utilizando :

c:\Users\username\.grails\1.2-M4\projects\projectname\plugins 

c:\Users\username\.grails\1.1.1\projects\projectname\plugins 

Entonces, toma applications.groovy y hacer varias copias, como

application.groovy.1.1 
application.groovy.1.2M4 

Ahora, para cambiar, sólo tiene que cambiar el nombre del application.groovy.X a application.groovy y que está bueno para ir (después de ejecutar grails limpio por supuesto):

grails1.1 run-app 
grails12M4 run-app 

Por último, existen otras diferencias entre las versiones (es decir, el nuevo 1.2 está introduciendo dependencias DSL), pero la mayoría de las veces las cosas son lo suficientemente compatibles entre versiones anteriores para que puedas llegar a un denominador común.

3

Tengo el mismo problema que usted.Para mi preocupación, he escrito una secuencia de comandos por lotes (grails_version.bat) accesible desde mi inicio de Windows PATH.

Configure su GRAILS_HOME a su versión estándar de Grails y cada vez que desee ejecutar una aplicación Grails en otra versión que la estándar, abra un símbolo del sistema, ejecute el script por lotes (>grails_version) y ejecute los comandos de griales (ej : grails run-app).

Si está utilizando IntelliJ, puede configurar la versión de grial por aplicación.

Aquí está el código:

@echo off 

set v11=1.1 
set v111=1.1.1 
set v12M2=1.2-M2 
set v12M3=1.2-M3 
set v12M4=1.2-M4 
set /p grails_version= What is the grails version (%v11%, %v111%, %v12M2%, %v12M3% (default), %v12M4%)? 
if "%grails_version%" == "%v11%" goto :set_grails_home 
if "%grails_version%" == "%v111%" goto :set_grails_home 
if "%grails_version%" == "%v12M2%" goto :set_grails_home 
if "%grails_version%" == "%v12M3%" goto :set_grails_home 
if "%grails_version%" == "%v12M4%" goto :set_grails_home 
if "%grails_version%" == "" goto :set_grails_home_default 

:no_valid_input 
echo The input version is not valid 
exit 

:set_grails_home_default 
set grails_version=%v12M3% 

:set_grails_home 
set GRAILS_HOME=D:\Install\grails\grails-%grails_version% 
path = %GRAILS_HOME%\bin;%PATH% 
echo GRAILS_HOME=%GRAILS_HOME% 

disfrutar.

4

Tengo un archivo por lotes, que se ve a continuación.

@ECHO OFF 

if "%1"=="231" goto grails231 
if "%1"=="232" goto grails232 
if "%1"=="233" goto grails233 
if "%1"=="234" goto grails234 


goto end 

:grails231 
set GRAILS_HOME=F:\softwares\grails-2.3.1 
set PATH=%GRAILS_HOME%\bin;%PATH% 
goto end 

:grails232 
set GRAILS_HOME=F:\softwares\grails-2.3.2 
set PATH=%GRAILS_HOME%\bin;%PATH% 
goto end 


:grails233 
set GRAILS_HOME=F:\softwares\grails-2.3.3 
set PATH=%GRAILS_HOME%\bin;%PATH% 
goto end 

:grails234 
set GRAILS_HOME=F:\softwares\grails-2.3.4 
set PATH=%GRAILS_HOME%\bin;%PATH% 
goto end 

:end 

Se puede ejecutar como 'setgrails 233' y fijará los griales 2.3.3

2

En Linux/Mac, GVM es una herramienta fantástica para instalar y trabajar con varias versiones de Grails, maravilloso , etc. No puede usar GVM en Windows , pero hay un clon posh-gvm que se ejecutará con Powershell en Windows.

  1. Aparentemente, este se debe a que Windows no admite enlaces simbólicos
1

Lo que cambiaría estas respuestas es el manejo PATH. Cada vez que ejecuta el script y cambia las versiones, extenderá su ruta un nodo más. Funciona, pero desordenado. Intenta crear un $ path2 sin referencia a tu JAVA_HOME o GRAILS_HOME y la ruta se convertirá en path2 + grails + java. Ejemplo: establecer PATH = "% PATH2%; F: \ softwares \ grails-2.3.1; path2java7.

La única razón por la que agrego la referencia de Java7 es que necesito Java 6 para mi aplicación grails anterior y Java 7 para nuevos griales

1

Lo hago en Windows como a continuación.

enter image description here

enter image description here

Así que sólo cambia la variable de entorno GRAILS_VER. Puedo cambiar mi versión de grial en cualquier momento.

enter image description here

Cuestiones relacionadas