Отладка приложения grails (2.3+) может быть выполнена двумя способами.
1. Простое решение: отключение отладки
редактировать BuildConfig.groovy:
grails.project.fork = [
war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, fork ...
run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, fork ...
к
grails.project.fork = [
war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, fork ...
run: false,
Плюсы:
- Простой сделать (И получить с вашего развития)
Минусы:
- Это устраняет возможность выполнять во время выполнения замены кода. Это означает, что если вы измените код, он больше не будет автоматически загружаться, и вам нужно будет перезапустить приложение, чтобы увидеть изменения. Это может занять много времени.
2. Участвуйте решение: отладки раздвоенного выполнения
Это несколько более сложным решением, где присоединить отладчик к приложению погонного Grails. Описано более подробно in this blog post.
После настройки у вас есть дополнительная конфигурация запуска, которая позволяет запускать grails в раздвоенном режиме и еще одну дополнительную конфигурацию прогона, которая позволяет вам отлаживать этот разветвленный режим. Уловка состоит в том, что вам необходимо запустить оба или это не работает.
Плюсы:
- Вы как отладки и кода во время выполнения замены
- Это не мешает запуска приложения в обычном режиме. (То есть у вас есть дополнительные опции)
Минусы:
- Настройка занимает немного времени
- Запуск в режиме отладки требует более сложный процесс из двух шагов (т.е. это занимает больше времени)
Соображения
Раствор 2 мес в том смысле, что он обеспечивает гибкость. Я лично не очень часто использую debug, поэтому просто начинаем в обычном режиме. Когда я хочу отлаживать, я перезагружаюсь в режиме отладки.
Решение 1 строго лучше, если вам нужно отлаживать и также необходимо перезапустить много. Например, когда вы работаете над вашими классами доменов или настройками базы данных в вашем BootStrap.groovy.
Неужели это когда-нибудь работало? У меня были ситуации, когда intellij и grails выходили из синхронизации, поэтому отладка перестала работать, потому что intellij не «понял» этот код. «Grails clean» исправляет это довольно быстро. Какая версия Intellij и Grails? – Gregg
Я использую последнюю версию. Grails 2.3.0 и Intellij 12.1.5. Команда Clean также не работает. Я понял, что папка проекта внутри .grails/2.3.0/projects не была создана. – ricardogobbo
Это случилось со мной, когда я неправильно установил «debug: true» в настройках * компиляции * под «grails.project.fork». – RMorrisey