2014-02-13 6 views
1

Я использую Eclipse 4.3.1 с интеграцией Maven.Сделайте Eclipse распознающим разницу между обычными исходными файлами и исходными исходными файлами

Eclipse не распознает разницу между обычными исходными файлами и исходными исходными текстами.

Например: Когда я использую класс Mockito, который является областью проверки в обычной исходной папке, все кажется прекрасным. Или когда я ошибочно создаю класс в тестовой исходной папке, ничего не происходит.

Только когда Jenkins выполняет сборку Maven, отображаются ошибки компиляции.

Могу ли я как-то заставить Eclipse работать правильно?

ответ

2

Вы должны сделать разницу между временем выполнения и временем компиляции.

  1. время компиляции: Eclipse, поддерживает только один путь создания для каждого проекта. Если ваши тестовые файлы и ваши файлы приложений имеют один и тот же проект, они используют один и тот же путь класса времени компиляции. Это означает, что вы можете получить доступ к любым классам в вашей директории src (test или main) и классах из любой зависимости. Eclipse не может отметить это как ошибку, потому что не видит разницы между всеми этими файлами.

  2. Время работы: Eclipse, позволяет выполнять различные пути к классам во время выполнения и m2e поддерживает это. Каждый запрещенный доступ приводит к исключению RuntimeException (ClassNotFoundException).

доступа во время выполнения следующим образом:

# access from -> access to 
src/main/java -> jar(scope: compile) [allowed] 
src/main/java -> jar(scope: test) [forbidden] 
src/main/java -> src/test/java  [forbidden] 

src/test/java -> jar(scope: compile) [allowed] 
src/test/java -> jar(scope: test) [allowed] 
src/test/java -> src/main/java  [allowed] 

Чтобы ответить на вопрос: Что вы хотите, не представляется возможным без заплат затмение. Хотя вы можете разбить тестовые файлы и ваше приложение на отдельные проекты.

Самое простое решение для запуска/тестирования приложения на локальном компьютере, перед проверкой в ​​

+0

Просто чтобы прояснить, @ Абсурд-ум предлагает запустить «тест МВН» локально перед проверкой в ​​-. Вы можете сделать это с интеграцией maven/eclipse прямо из eclipse (или, также из командной строки в каталоге с вашим pom.xml). Я думаю, что это хороший совет! – unigeek

+0

@ user2317875 "mvn test" не помогает вообще. Вам нужно запустить основное приложение. Достаточно запустить приложение из Eclipse. (тест mvn перед проверкой по-прежнему является хорошим советом) –

+0

Вы верны! Я получил его обратно и прокомментировал после прочтения последнего предложения о запуске/тестировании вашего приложения локально. Моя ошибка - спасибо! – unigeek

Смежные вопросы