Что на самом деле делает скрипт "grails clean"? - PullRequest
22 голосов
/ 31 декабря 2010

Мне интересно узнать о команде grails clean. Как только я импортировал неправильный пакет в класс домена, это был java.util.regex. Я использовал его для выполнения команды замены регулярных выражений, но оказалось, что все не изменилось, поэтому я предположил, что мое регулярное выражение было неверным. Но я оставил его там для будущего уточнения.

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

Так что, похоже, приложение просто проигнорировало мои изменения. В документации говорится:

В случае, если ваше приложение Grails имеет был ввернут и придумал Загадочные сообщения об ошибках попробуйте:

grails clean

Я немного озадачен этой "загадочной" вещью. Так что же на самом деле делает * 1019? Какие ресурсы не будут снова скомпилированы, если не вызывается grails clean?

Ответы [ 2 ]

17 голосов
/ 31 декабря 2010

Сценарий clean удаляет скомпилированные классы и файлы свойств, а также другие не исходные ресурсы, которые были скопированы в dir классов, а также другие вещи, такие как отчеты об испытаниях.

Проблема, с которой вы сталкиваетесь, связана с добавочной компиляцией. В целом он достаточно надежный, но может не работать с Java, и, к сожалению, более вероятен с Groovy, поскольку это динамический язык. Трудно определить полный объем изменений в одном классе во всех других классах, и иногда изменения пропускаются. Если вам повезет, очевидно, что что-то не так, но иногда может потребоваться некоторое время, чтобы подумать, почему происходит какое-то странное поведение.

Так что лучше всего всегда делать полную компиляцию, будь то чистая Java или смесь Groovy и Java. Поскольку это дорого (особенно для крупных проектов), достаточно использовать как можно больше инкрементной компиляции, но иногда принудительно вызывать полную компиляцию с grails clean.

3 голосов
/ 15 июня 2015
grails clean

Команда clean удаляет все скомпилированные ресурсы из приложения. но не временные файлы.

grails clean-all

Команда clean-all удаляет все скомпилированные ресурсы , а также рабочий каталог , который содержит временные файлы для конкретного проекта.

Поскольку Groovy является скомпилированным языком, как и в Java, иногда это полезно для очистки старых экземпляров классов и обеспечения правильной компиляции. Также рекомендуется запускать эти сценарии перед запуском тестов или созданием файла WAR, чтобы обеспечить полную компиляцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...