Лично я не убежден теорией поточной обработки вообще.
одно время я видел это прежде, я работал с библиотекой, которая также определила Исключение и использования, я подразумевал, что фактическая Выгода относилась к различному типу "Исключения" (если это было полностью определено, это была Компания. Lib. Исключение, но это не было из-за использования), поэтому, когда это пришло к ловле нормального исключения, которое выдавалось (некоторое исключение аргумента, если бы я помню правильно), это просто не поймало бы его, потому что тип не соответствовал.
Так, таким образом, там другой Тип исключительной ситуации в различном пространстве имен, которое находится в использовании в том классе?
РЕДАКТИРОВАНИЕ: быстрый способ проверить это, удостоверяются в Вашем пункте выгоды, Вы полностью определяете Тип исключительной ситуации как "Система. Исключение" и дает ему водоворот!
EDIT2: хорошо я попробовал код и признаю поражение на данный момент. У меня должен будет быть другой взгляд на него утром, если никто не предложил решение.
У меня есть пара файлов bat, которые изменяют GRAILS_HOME и системный PATH в зависимости от того, какую версию я использую.
Это не самое красивое решение, но, по крайней мере, работает для меня.
IntelliJ позволяет вам указать, какую версию Grails применять в качестве конфигурации фасета для каждого проекта. Плагину Eclipse еще предстоит достичь такого уровня абстракции.
У меня такая же проблема, как и у вас. К моему сведению, я написал пакетный сценарий ( grails_version.bat
), доступный из моей домашней папки PATH в Windows.
Настройте свой 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%
Наслаждайтесь.
Просмотрите эту ссылку , в ней объясняется, как именно это сделать с помощью 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, и все готово (после запуска grails, очищенного от конечно):
grails1.1 run-app
grails12M4 run-app
Наконец, есть и другие различия между версиями (например, новая версия 1.2 вводит DSL-зависимости), но в большинстве случаев вещи обратно совместимы, так что вы можете придумать общий знаменатель.