Maven верный плагин висит навсегда - PullRequest
8 голосов
/ 03 ноября 2010

До вчерашнего дня моя установка проекта была в порядке, но сегодня моя установка застряла на следующем,

Apache Maven 2.2.1 (r801777; 2009-08-06 20: 16: 01 + 0100)

Java-версия: 1.6.0_20

[INFO] Surefire report directory: C:\Perforce\project-name\target\surefire-reports

В основном после этой строки установка вообще не продолжается. Есть мысли?

  1. Я пробовал mvn -X и получаю то же самое.
  2. Я даже обновил до версии 2.6 последней и все еще получаю ту же проблему
  3. Я гарантировал, что нет никаких параметров отладки, т.е. JVM не ожидает подключения отладчика (-Xdebug options)

Ответы [ 5 ]

2 голосов
/ 03 ноября 2010

Я прошел forkMode = никогда, и теперь я заметил, что один из тестов вообще не запускался. Причина была в том, что он использовал ehcache и сохранял записи в каталоге "java.io.tmpdir", который был временным каталогом моего пользователя.

Система также начала работать медленно с сегодняшнего дня. Затем я заметил, что моя папка C: / users /../ AppData / Local / Temp содержит около 2 миллионов файлов, большинство из которых - либо p4ticket234234.txt, либо файлы журнала Visual studio.

Как только я очистил эти файлы журнала, моя сборка прошла успешно. Я думаю, что jconsole или какой-нибудь поток дампа указали бы то же самое.

2 голосов
/ 03 ноября 2010

Создайте дамп потока правильного процесса, используя jstack, и отправьте вопрос

1 голос
/ 03 ноября 2010

Surefire ожидает завершения всех потоков, не являющихся демонами, в вашем приложении. Легко пропустить одно или другое. Например, обязательно вызовите метод shutdown на вашем Executors, если вы его используете. Если вы выполняете обработку потоков самостоятельно, вы должны либо сделать их потоками daemon , либо убедиться, что они завершаются. Дамп потока может помочь обнаружить длительные потоки.

0 голосов
/ 18 мая 2011

У меня была такая же проблема.Внезапно мой «тест mvn» завис, казалось бы, навсегда, а связанный процесс org.apache.maven.surefire.booter.ForkedBooter занял 1,7 ГБ!После долгих исследований выясняется, что проблема заключалась в том, что я удалил класс, экземпляр которого был создан Spring-core как подпружиненный компонент в конфигурации XML Spring.Как только я удалил элемент, соответствующий удаленному классу, из весенней конфигурации XML, все было хорошо.Это похоже на баг весной и верное использование, когда не выдается разумного предупреждения или ошибки.

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

Используйте инструменты jps, jstack или jvisualvm из JDK для получения списка процессов и дампов их потоков.

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