2012-03-05 2 views
3

Я хотел запустить пользовательскую среду под названием «local» ... как в локальном dev. Я бы использовал конфигурацию (например, соединения DB) этого, прежде чем война будет развернута на «общий» сервер разработки. Но я заметил, что при обновлении браузера в нем отсутствует поведение стандартной среды разработки «Grails», например «Изменения в GSP».Настроить поведение среды Grails

Так что это заставило меня задуматься, как изменить поведение пользовательской среды? Как вы можете скопировать все настройки для «разработки» в другую среду?

+0

Не будет ли «общий" Сервер разработки»лучше подходит в качестве пользовательской среды? – doelleri

+0

Спасибо, да, и на самом деле это путь, который я сейчас начал, но теперь любопытство побеждало меня ... Мне нужно лучше понять другую часть Grails ..., что отличает развитие env по-разному и как я могу настроить это, если необходимо ... – Steve

ответ

1

Я не думаю, что автоматическая перезагрузка зависит от окружающей среды. Если вы выполните grails run-app, перезагрузка произойдет независимо от среды, в которой вы работаете. Другими словами, автоматическая перезагрузка будет происходить для всех

  • grails dev run-app
  • grails prod run-app
  • grails test run-app

С другой стороны, перегрузка не произойдет, если вы строите войну с помощью grails war, то разверните его. Поэтому перезагрузка зависит от того, как вы запускаете приложение, а не из среды. Самый простой способ определить настраиваемую среду, похожую на dev, - это определить набор настроек по умолчанию, а затем выборочно переопределить параметры для каждой среды, например.

//default config 
myApp { 
    userRoleName = 'ROLE_USER' 
    adminRoleName = 'ROLE_ADMIN' 
    dateFormat = 'yyyy-MM-dd' 
} 

environments { 
    // config overrides for dev 
    development { 
     myApp.dateFormat = 'yyyy/MM/dd' 
    } 

    // config overrides for local 
    local { 
     myApp.dateFormat = 'MM/yy/dd' 
    } 
} 
+1

Спасибо, Дон, что вы говорите, имеет смысл, и именно так я и думал, что он должен работать. Я просто попробовал снова, и если я запустил перезагрузку «grails -Dgrails.env = local run-app» или «grails -Dgrails.env = local dev run-app», то не работает (под Grails 2.0.1). Так что работайте так, что он должен что-то записывать в «dev», но переопределять все, где я определил «локальный» - как вы описали выше ... и вот как он работает для настроек конфигурации, но перезагрузка кажется затерянной. – Steve

+0

I должны согласиться с функциональностью перезагрузки Steve - Grails, не работает для пользовательских сред. Повторная компиляция GSP может быть исправлена ​​путем добавления '-Dgrails.gsp.enable.reload = true' в командную строку, но классы * .grails по-прежнему игнорируются. Добавление '-Ddisable.auto.recompile = false' не помогло. Я использую Grails 2.1.1 – curd0

5

Вы можете включить перезагрузки модифицированного GSP в пользовательской среде с указанием флага выполнения приложения:

-Dgrails.gsp.enable.reload=true 
+0

Полезно знать, спасибо! – Steve

Смежные вопросы