Неизвестный тип блока
во время выполнения org.jacoco:jacoco-maven-plugin:0.8.5:report
указывает на поврежденный файл jacoco.exec
.
Этот файл создается агентом JaCoCo при завершении JVM с тестами с использованием JVM shutdown hook.
Повреждение файла обычно происходит, когда JVM с тестами жестко убивается вместо правильного изящного успешного завершения.
мой mvn зависает довольно долго после завершение последнего теста и, похоже, ничего не делает
является IMO подтверждением того, что JVM с тестами не завершается корректно, потому что это обычно означает, что maven-surefire-plugin
ожидает завершения ваших тестов для некоторое время, а затем убивает JVM - см. аналогичную проблему https://github.com/jacoco/jacoco/issues/1042
В общем, пожалуйста, исправьте ваш код / тесты - JVM с тестами должен корректно завершиться.
Я также считаю, что обнаружил проблемный тестовый файл, поскольку, когда я исключаю его, все работает нормально и даже перестает зависать. Я просто не понимаю, что было бы неправильно в этом файле, что могло бы привести к зависанию (циклы отсутствуют, единственные «файлы», которые выполняются, - это изменение потоков System.out / err по умолчанию для отдельного средства записи), учитывая, что большинство это - манипуляции со строками.
Цитирование http://maven.apache.org/surefire/maven-surefire-plugin/faq.html для maven-surefire-plugin
версия 3.0.0-M4
:
Было бы еще хуже если вы переопределяете поток Java с помощью System.setOut , поскольку предполагается, что поток также поврежден, но Maven никогда не увидит, что тесты завершены, и build может зависнуть .