Тесты Mule Maven внезапно генерируют исключение ClassNotFoundException

Внезапно все мои проекты Mule Maven выдают эту ошибку при запуске mvn clean test:

java.lang.NoClassDefFoundError: org / apache / commons / cli / ParseException в org.mule.tck.junit4.AbstractMuleTestCase.(AbstractMuleTestCase.java:71)

Я могу добавить зависимость для этого, но на самом деле я не должен этого делать.

Ничто не изменилось в моем коде. Я использую Mule 3.4

4 ответа

Решение

Тебе нужно commons-cli.jar в вашем classpath, добавьте эту зависимость Maven к вашему pom

<dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.1</version>
</dependency>

Обновление: код ОП был исправлен после добавления commons-cli 1.1 зависимость.

Описание проблемы и как ее исправить: http://ricston.com/blog/mule-classnotfoundexception-tests-commons-cli/

В двух словах, у вас, вероятно, неправильный JAR-файл с именем commons-cli-1.2. Удалите это и перезапустите сборку Maven. Тебе должно быть хорошо после этого.

Если зависимость от follogin доступна в POM. это должно работать нормально.

 <dependency>
        <groupId>org.mule.tests</groupId>
        <artifactId>mule-tests-functional</artifactId>
        <version>3.4.0</version>
        <scope>test</scope>
    </dependency>

Затем используйте mvn clean compile для обновления зависимости.

mvn eclipse:clean eclipse:eclipse clean compile

Надеюсь это поможет.

Поведение Maven не воспроизводится при каждом запуске: кроме общих проблем с сетью и проблем с повреждением хранилища, все может обновляться автоматически в любое время, нарушая любой шаг выполнения, даже если вы не изменили ни один из ваших файлов,

Ваше сообщение об ошибке, касающееся класса в некоторой библиотеке Apache Commons, указывает на разногласие между версией этой библиотеки, которую должен использовать Mule (та, которая имеет класс ParseException), и версией библиотеки, которую он фактически загружает (без класса и вызывает исключение).

Возможные сценарии несоответствия версий включают в себя обновление новой версии Mule с ошибками (возможно, только неправильной или поврежденной POM), которая указывает несовместимую версию библиотеки, или случайное обновление или понижение последней версии библиотеки в вашем хранилище вследствие добавления или обновление чего-то, не связанного с Мулом.

Анализ предложений:

  • Какие плагины в вашем репозитории Maven имеют версию снимка? Какие из этих снимков были обновлены в момент появления ошибки?
  • Какие библиотеки jar и какие версии включают класс ParseException? Что зависит от конкретных версий или от последних версий этих банок?
Другие вопросы по тегам