Grails: очень медленное развертывание. «Устранение зависимостей ...» занимает более 10 секунд - PullRequest
4 голосов
/ 08 июня 2011

Каждый раз, когда я делаю небольшое изменение в своем приложении Grails, его развертывание занимает 10-15 секунд. Большая часть времени находится в «разрешении зависимостей» ...

Welcome to Grails 1.3.7 - http://grails.org/
...
Resolving dependencies...
Dependencies resolved in 9868ms.

Вот некоторые детали моей настройки:

  • MacBook (OS X 10.5.8) 2,4 ГГц Core 2 Duo с 4 ГБ ОЗУ + много места на диске
  • SpringSource Tool Suite - версия: 2.6.1.RELEASE Build Id: 201105041000
  • Граальс 1.3.7
  • Небольшой проект Grails с несколькими моделями доменов
  • Всего несколько плагинов: hibernate 1.3.7, mail 1.0, spring-security-core 1.1.3, spring-security-open id 1.0.2, spring-security-ui 0.1.2, webtest 3.0.1

Районы, которые уже исследованы:

  • Удаление каталога .ivy2 и принудительное полное внешнее обновление отключили его примерно на 5 секунд.
  • Мой каталог .ivy2 находится на моей локальной машине, поэтому он не , эта проблема
  • У меня были некоторые проблемы с зависимостями, аналогичные этим , но теперь я их исправил и не вижу никаких ошибок.
  • Я включил вход в BuildConfig.groovy, установив журнал "info" в разделе grails.project.dependency.resolution. Похоже, что большую часть времени он тратит на «разрешение» зависимостей, а не на фактическую загрузку элементов, поэтому я не думаю, что mavenCentral или другие общедоступные репозитории Maven представляют собой проблему.

Выписка из журнала ...

resolution report  resolve 802ms  artifacts dl 86ms
resolution report resolve 8492ms  artifacts dl 150ms
Dependencies resolved in 9909ms.

Дополнительная информация: Под развертыванием я подразумеваю использование «run-app», под повторным развертыванием я подразумеваю изменение файла, который заставляет Grails автоматически выполнять «run-app». У меня нет никаких проблем с производительностью, связанных с сетью, и у меня есть широкополосное подключение к Интернету на 32 МБ и 1 МБ.

В прошлом я работал над приложением аналогичного размера, где «Разрешение зависимостей» занимало около 1 секунды. Это был Grails 1.3.6, плагин безопасности Shiro, такой же небольшой проект с несколькими моделями доменов на компьютере с Windows XP с пакетом обновления 3 (Intel Core 2 Duo 2,2 ГГц, 2 ГБ ОЗУ). Затем я использовал NetBeans 6.9.1.

Дополнительная информация 2: Полный журнал плюща прилагается здесь


Я изменяю очень мало файлов каждый раз, поэтому это очень расстраивает, когда на повторное развертывание уходит 15 секунд.

Есть ли у кого-нибудь советы о том, как сократить время, необходимое для «Устранения зависимостей ...»?

Ответы [ 3 ]

3 голосов
/ 29 июня 2011

В продолжение нашего разговора в комментариях.

Лучший из известных мне способов сократить время разрешения зависимостей, если вы определили, что проблема не в вашей сети, - убедиться, что у вас ее нет.зависимости от снимка.Зависимости моментальных снимков являются версиями зависимости в активной разработке, поэтому Ivy нужно будет выйти на внешний сервер, чтобы проверить, доступна ли новая версия этого снимка.

Я заметил, что вы упомянули, что используете плагин webtest 3.0.1 grils.Я знаю, что этот плагин зависит от двух снимков.Таким образом, удаление этого плагина должно сократить время, необходимое для разрешения зависимостей.Я не знаю, как переопределить зависимости, указанные в плагине.В случае плагина webtest я не думаю, что существует версия зависимости, которая была бы приемлемой, кроме указанной.Лучшее, что вы можете сделать, - это убить автора плагина, чтобы удалить снимки.

1 голос
/ 07 декабря 2011

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

Grails: работа в автономном режиме с зависимостями моментальных снимков

0 голосов
/ 03 ноября 2011

Пожалуйста, смотрите мой ответ здесь.Плагин, опирающийся на плохо определенный артефакт maven, может заставить Граилса каждый раз искать и искать новую версию.

Граилы очень медленно разрешают определенные зависимости

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