Были ли у вас в Groovy / Grails Tool Suite (GGTS) выходные данные консоли, запущенные приложением Grails, которые в точности совпадают с предыдущими, просто не отображаются?
Это часто можно увидеть с помощью операторов println
для целей отладки, например, в контроллере, который, по вашему мнению, должен выводить некоторую строку в консоль каждый раз, но просто этого не делает.
1
2
3
4
5
|
class TestController { def index() { println "index called" } } |
Когда http: // localhost: 8080 / test / test / index неоднократно вызывается в браузере, вы просто продолжаете видеть только первый случай .
1
|
....index called |
Когда одно и то же сообщение повторно отправляется на консоль, некоторая удобная функция GGTS поглощает некоторый вывод — если он выглядит одинаково. Это связано с — с момента появления Grails 2.0 — кодами ANSI, чтобы сделать вывод на консоль цветным или вновь появиться в той же строке.
Крис де Волдер дает хороший пример в выпуске JIRA STS-3499 о том, как много строк, таких как
1
2
3
4
|
Resolving Dependencies. Resolving Dependencies.. Resolving Dependencies... Resolving Dependencies.... |
должны перезаписывать себя на консолях, поддерживаемых ANSI, так что вы увидите только
1
|
Resolving Dependencies...<increasing periods> |
на той же линии.
Вывод на консоль GGTS без поддержки ANSI исключается из этих кодов, что приводит к дополнительному выводу, который некоторым людям кажется неприятным. Таким образом, GGTS использует обходной путь — который включен по умолчанию — и удаляет начало вывода, которое соответствует предыдущему выводу, и выводит только остаток.
Так что, если вам интересно, почему
1
2
3
4
5
|
class BootStrap { def init = { servletContext -> [ 'A' , 'B' , 'B' ].each { println it } } } |
будет только печатать
1
2
3
4
|
|Running Grails application A B |Server running. Browse to http: //localhost :8080 /test |
вместо
1
2
3
4
5
|
|Running Grails application A B B |Server running. Browse to http: //localhost :8080 /test |
теперь вы знаете, что это не ошибка 🙂
Вы должны отключить опцию « Очистить выход Grails 2.0 » в настройках GGTS в Groovy> Grails> Grails Launch, чтобы предотвратить это поведение при глотании.
Теперь ваш вывод появляется в GGTS, когда вы хотите, чтобы он появился 🙂
Ссылка: | GGTS: Очистите выход Grails 2.0 от нашего партнера по JCG Теда Винке в блоге Теда Винке . |