Eclipse Buildship смешивает test и runtime classpath

Если вы пишете проект, используя Eclipse или Spring Tool Suite, а в проекте используется Gradle, то вы точно используете Eclipse Buildship.

Eclipse Buildship — это коллекция плагинов для Eclipse, добавляющая поддержку Gradle.

Если вы используете Gradle до версии 4.4, то в конце концов вы заметите, что для запуска тестов используется тот же самый classpath, что и для обычного запуска приложения из IDE. Это неправильно. Например, если вы запускаете “MyApplicationMain.java” на выполнение, то в вашем приложении будет доступен как JUnit, так и все ваши классы из “src/test”, что в корне неверно и может привести к ошибкам.

Это известная ошибка, и она уже исправлена. Ссылки на описание багов:

Нам просто нужно обновить версию Gradle и пересобрать проект.

Скорее всего, вы используете Gradle Wrapper. Если да, то просто используйте команду:

В противном случае рекомендую всё-таки начать пользоваться Gradle Wrapper, иначе прийдётся качать версию вручную.

Затем удалите все существующие каталоги “bin” в вашем проекте командой:

Обновите проект в Eclipse. При этом он пересоберётся. Вы увидите, что в каталогах “bin” появились подкаталоги “main” и “test”. Если это произошло, то всё получилось успешно. Проблема должна быть решена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *