Как сделать конструктор приложений Grails дружественным без необходимости повторного развертывания после изменения представления? - PullRequest
5 голосов
/ 24 января 2010

Прошло много времени с тех пор, как я действительно работал с J2EE, поэтому прошу прощения за мое невежество. Мое недавнее участие в проекте Grails вновь вызвало мой интерес к Java, особенно к Grails, так как это делает создание веб-приложений на платформе Java снова увлекательным. При этом я хотел бы, чтобы эксперт прокомментировал следующее требование, предъявляемое к приложению, построенному с использованием Grails:

Команда разработчиков (веб-дизайнеры) требует доступа к страницам GSP и редактирования файлов представлений (макеты, шаблоны и т. Д.), Не беспокоя команду разработчиков (разработчиков программного обеспечения). Этот сценарий может иметь место как во время строительства, так и после развертывания в производство.

Уровень связи между дизайнерами, разработчиками и бизнес-пользователями здесь не является проблемой. Тем не менее, примерно в 40% случаев бизнес-подразделения запрашивают изменения во внешнем интерфейсе, которые не влияют на время разработчиков, но требуют времени члена группы разработчиков. В настоящее время рабочий процесс развертывания следует за приложением Grails путем развертывания файла War на сервере Tomcat. Я полагаю, что существует более простой способ позволить команде разработчиков вносить изменения в пользовательский интерфейс без прохождения жизненного цикла сборки и развертывания.

Некоторые из членов команды разработчиков ранее имели опыт работы с PHP и иногда упускали возможность просто перезаписать файл шаблона, чтобы сделать элемент пользовательского интерфейса более функциональным или улучшить шаблон макета. Я надеюсь, что есть аналогичный способ приспособить такую ​​простоту в Grails. Мне сказали, что взрыв файла War мог бы быть вариантом, но он все еще требует перезагрузки размещенного приложения Tomcat.

Если вы считаете, что я смотрю на желаемое решение неправильно, пожалуйста, присоединяйтесь, поскольку я больше заинтересован в работоспособном компромиссе для всех вовлеченных членов команды. Спасибо.

Ответы [ 3 ]

10 голосов
/ 26 января 2010

Вам необходимо указать следующие настройки в Config.groovy:

grails.gsp.enable.reload=true
grails.gsp.view.dir="/path/to/gsp/views"

'grails.gsp.view.dir' - это обычно путь к вашему извлеченному репозиторию SVN. Затем вы можете просто 'svn up' каждый раз, когда хотите обновить представления.

Есть одно предостережение: при компиляции представления GSP он использует permgen. В конце концов у вас кончится и нужно перезапустить сервер.

0 голосов
/ 22 июня 2016

Возможно, это не прямой ответ на этот вопрос, но, поскольку вы, похоже, обращаете внимание на роль дизайнеров в проекте, вы также можете проверить мою удобную для реализации реализацию GSP , которая позволяет дизайнерам просматривать страницы GSP даже с пользовательскими тегами благодаря функции «объявление тега через атрибуты».

0 голосов
/ 25 января 2010

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

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

Вы, очевидно, понизили бы производительность, работая в режиме разработки и через run-app, но в вашем случае это может быть неплохим компромиссом.

ура

Lee

...