Как вы управляете разработкой с несколькими версиями Grails с помощью Windows?

Мы уже некоторое время используем Grails, и теперь мы прошли через несколько версий Grails. Мы не всегда хотим немедленно перенести наши "старые" приложения, но часто используем новую версию для новой разработки. Изменение переменных среды Windows неудобно, так как иногда мне приходится работать над двумя связанными проектами одновременно с запуском разных версий Grails.

В Linux я, вероятно, создаю сценарии или псевдонимы оболочки, чтобы я мог указать в командной строке переключатель версии, но я не верю, что Grails это поддерживает.

Как другие, которым необходимо кодировать несколько версий Grails, управляющих им?

Обновление:
Я создал файл gv.bat для установки переменных среды GRAILS\_HOME и PATH. Я добавил переменную среды 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, чтобы изменить значение, но это оказалось для меня трудным.

Ответы

Ответ 1

Теперь это намного позже, и есть еще один способ управлять версиями Groovy и Grails, если вы используете командную строку для их запуска: Posh-gvm. https://github.com/flofreud/posh-gvm

GVM - это инструмент для сред unix/mac для управления версиями Groovy/Gradle/Grails/more, а кто-то наконец сделал эквивалент Windows Posh-gvm (сокращение от Power-shell GVM). Это очень полезно и легко использовать для загрузки и настройки вашей среды для любой версии этих инструментов, которые вы хотите использовать в любой момент времени.

Если вы используете IDE, posh-gvm по-прежнему является отличным способом загрузки/установки новых версий по мере их выхода, а ваша IDE может указывать на каталоги установки posh-gvm.

Ответ 2

У меня есть несколько файлов bat, которые меняют GRAILS_HOME и систему PATH в соответствии с той версией, которую я использую.

Это не самое прекрасное решение, но, по крайней мере, работает для меня.

Ответ 3

IntelliJ позволяет вам указать, какую версию Grails следует применять в качестве конфигурации фасет для каждого проекта. Плагин Eclipse еще не достиг этого уровня абстракции.

Ответ 4

У меня есть пакетный файл, который выглядит ниже.

@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

Ответ 5

У меня такая же проблема, как и у вас. Для моей озабоченности я написал пакет script (grails_version.bat), доступный из моего дома Windows PATH.

Настройте свой GRAILS_HOME на стандартную версию Grails и каждый раз, когда вы хотите запустить приложение Grails в другую версию, чем стандартную, откройте командную строку, запустите пакет script (>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%

Enjoy.

Ответ 6

В Linux/Mac GVM - это фантастический инструмент для установки и работы с несколькими версиями Grails, Groovy и т.д. Вы не можете использовать GVM самостоятельно в Windows 1 но есть clone posh-gvm, который будет запускаться под Powershell в Windows.

  • AFAIK это потому, что Windows не поддерживает символические ссылки

Ответ 7

То, что я бы изменил в отношении этих ответов, - это обработка PATH. Каждый раз, когда вы запускаете script и меняете версии, вы увеличите свой путь еще на node. Это работает, но беспорядочно. Попробуйте создать $path2 без ссылки на ваш JAVA_HOME или GRAILS_HOME, и путь станет path2 + grails + java. Пример: установить PATH = "% PATH2%; F:\softwares\grails-2.3.1; path2java7.

Единственная причина, по которой я добавляю ссылку на Java7, - это то, что мне нужно Java 6 для моего старого приложения grails и Java 7 для новых графиков.

Ответ 8

Я делаю это в Windows, как показано ниже.

введите описание изображения здесь

введите описание изображения здесь

Поэтому я просто изменяю переменную среды GRAILS_VER. Я могу изменить версию Grails в любое время.

введите описание изображения здесь

Ответ 9

Отметьте эту ссылку, в ней объясняется, как это сделать, используя 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

Затем возьмите application.groovy и сделайте несколько копий, например

application.groovy.1.1
application.groovy.1.2M4

Теперь, чтобы переключиться, вам просто нужно переименовать application.groovy.X в application.groovy, и вам хорошо пойти (после запуска грааля очистить, конечно):

grails1.1 run-app 
grails12M4 run-app

Наконец, существуют и другие различия между версиями (например, новый 1.2 вводит зависимости DSL), но в большинстве случаев все обратно совместимо, чтобы вы могли найти общий знаменатель.