如何使用Windows管理使用多个版本的Grails进行开发?

时间:2009-11-24 17:15:35

标签: grails

我们现在已经使用Grails了一段时间,现在已经完成了几个Grails版本。我们并不总是希望立即迁移我们的“旧”应用程序,但通常会使用较新版本进行新开发。更改Windows环境变量很不方便,因为我有时必须同时处理运行不同版本Grails的两个相关项目。

在Linux中,我可能会创建包装脚本或别名,以允许我在命令行上指定版本开关,但我不相信Grails支持这个。

其他需要针对Grails的多个版本进行编码的其他人如何管理它?

更新:
我创建了一个gv.bat文件来设置GRAILS\_HOMEPATH环境变量。我在我的框中添加了GRAILS\_INSTALLS环境变量(c:\usr\local\grails)并从我的%GRAILS_HOME%\bin中删除了PATH引用。

gv.bat

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

要执行任何Grails工作,我运行> gv 1.1.2或我需要使用的任何版本。我想弄清楚如何在PATH中更换字符串以更改值,但结果对我来说很难

10 个答案:

答案 0 :(得分:9)

我有几个bat文件根据我正在使用的版本更改GRAILS_HOME和系统PATH。

这根本不是最美丽的解决方案,但至少对我有用。

答案 1 :(得分:5)

我有一个批处理文件,如下所示。

@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

它可以像'setgrails 233'一样运行,它将设置grails 2.3.3

答案 2 :(得分:4)

IntelliJ允许您指定要作为每个项目构面配置应用的Grails版本。 Eclipse插件尚未实现这种抽象级别。

答案 3 :(得分:4)

现在很晚了,如果你使用命令行来运行它们,还有另一种管理Groovy和Grails版本的方法:Posh-gvm。 https://github.com/flofreud/posh-gvm

GVM是unix / mac环境管理Groovy / Gradle / Grails /更多版本的工具,有人最终制作了一个名为Posh-gvm的Windows等价物(Power-shell GVM的缩写)。对于您希望在任何时间点使用这些工具的任何版本,下载和配置环境非常有用且易于使用。

如果你正在使用IDE,posh-gvm仍然是下载/安装新版本的好方法,你的IDE可以指向posh-gvm安装目录。

答案 4 :(得分:3)

我和你有同样的问题。出于我的考虑,我编写了一个可从Windows PATH主页访问的批处理脚本(grails_version.bat)。

将GRAILS_HOME设置为标准Grails版本,每次要将Grails应用程序运行到另一个版本而不是标准版本时,打开命令提示符,运行批处理脚本(>grails_version)并运行grails命令(例如:grails run-app)。

如果您使用的是IntelliJ,则可以为每个应用程序配置grails版本。

以下是代码:

@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%

享受。

答案 5 :(得分:2)

在Linux / Mac上,GVM是安装和使用Grails,Groovy等多个版本的绝佳工具。您不能在Windows 1 上使用GVM本身,但是有一个克隆posh-gvm将在Windows上的Powershell下运行。

  1. AFAIK这是因为Windows不支持符号链接

答案 6 :(得分:2)

我在Windows中执行此操作,如下所示。

enter image description here

enter image description here

所以我只是更改GRAILS_VER环境变量。 我可以随时更改我的grails版本。

enter image description here

答案 7 :(得分:1)

关于这些答案,我要改变的是PATH处理。每次运行脚本并更改版本时,都会将路径扩展一个节点。它有效,但很乱。尝试创建$ path2而不引用您的JAVA_HOME或GRAILS_HOME,路径变为path2 + grails + java。示例:设置PATH =“%PATH2%; F:\ softwares \ grails-2.3.1; path2java7。

我添加Java7参考的唯一原因是我需要Java 6用于我的旧grails应用程序,Java 7用于更新的grails。

答案 8 :(得分:0)

查看this link,它解释了如何使用cygwin和映射多个别名。

此外,了解插件目录的工作方式,并为每个版本的Grails多次复制它。我还经常使用全局插件,如tomcat,hibernate,dbUtil,console等。

假设您要在1.1和1.2M4之间切换 - 您可以使用正在使用的插件设置这些目录:

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

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

然后,使用applications.groovy并制作多份副本,例如

application.groovy.1.1
application.groovy.1.2M4

现在,要切换,你只需要将application.groovy.X重命名为application.groovy,你就可以了(当然是在运行grails之后):

grails1.1 run-app 
grails12M4 run-app

最后,版本之间还存在其他差异(即新的1.2引入了依赖关系DSL),但大多数时候事情都向后兼容,你可以提出一个共同点。

答案 9 :(得分:0)

有些答案已经过时了。

似乎当今最好的选择是SDKMAN!

SDKMAN!可在Mac OSX,Linux,WLS,Cygwin,Solaris和FreeBSD上顺利安装。我们还支持Bash和ZSH shell。

也可以在Windows上安装,但是SDKMAN“ 不能在Windows上本地安装,需要WLS,Cygwin或MSYS + MinGW ”。

之后,您可以choose the Grails SDK以及所需的版本。例如:

sdk install grails 1.3.7