Ошибка maven: пакет org.junit не существует

Я пытаюсь создать javadoc с maven, и он терпит неудачу. Он также терпит неудачу при выполнении проверки.

mvn verify

Я получаю следующую ошибку:

(...)
    [INFO] -------------------------------------------------------------
    [ERROR] COMPILATION ERROR : 
    [INFO] -------------------------------------------------------------
    [ERROR] /home/miquel/creaveu/createOmegaMatrix/src/main/java/edu/url/salle/gtm/hnm/dataStructures/HFrame.java:[6,23]
package org.junit does not exist
    [ERROR] /home/miquel/creaveu/createOmegaMatrix/src/main/java/edu/url/salle/gtm/hnm/dataStructures/HFrame.java:[6,0]
static import only from classes and interfaces
    (···)

В моем файле pom.xml у меня есть следующие строки:

<dependency>
  <groupId>org.junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.8.2</version>
  <scope>test</scope>
</dependency>

и мой локальный репозиторий содержит junit jar файл:

[email protected]:~/creaveu/createOmegaMatrix$ ls -l /home/miquel/.m2/repository/org/junit/junit/4.8.2/
total 248
**-rw-r--r-- 1 miquel miquel 237344 2012-09-13 11:01 junit-4.8.2.jar**
-rw-r--r-- 1 miquel miquel    236 2012-09-13 11:13 junit-4.8.2-javadoc.jar.lastUpdated
-rw-r--r-- 1 miquel miquel      0 2012-09-13 11:13 junit-4.8.2-javadoc.jar-not-available
-rw-r--r-- 1 miquel miquel    458 2012-09-12 18:35 junit-4.8.2.pom
-rw-r--r-- 1 miquel miquel    236 2012-09-13 11:13 junit-4.8.2-sources.jar.lastUpdated
-rw-r--r-- 1 miquel miquel      0 2012-09-13 11:13 junit-4.8.2-sources.jar-not-available
-rw-r--r-- 1 miquel miquel    163 2012-09-13 11:22 _maven.repositories
[email protected]:~/creaveu/createOmegaMatrix$

Код в порядке, потому что в моем ноутбуке, к которому у меня нет доступа, я бегал:

mvn javadoc:javadoc
mvn verify

без проблем, а также тесты работают в среде eclipse IDE.

Ответ 1

Хорошо, вы объявили junit зависимость только для классов test (те, что находятся в src/test/java, но вы пытаетесь использовать их в классах main (те, что находятся в src/main/java)).

Либо не используйте его в основных классах, либо удалите <scope>test</scope>.

Ответ 2

Я исправил эту ошибку, вставив эти строки кода:

<dependency>
  <groupId>junit</groupId>     <!-- NOT org.junit here -->
  <artifactId>junit-dep</artifactId>
  <version>4.8.2</version>
</dependency>

в < зависимостях > node.

более подробная информация: http://mvnrepository.com/artifact/junit/junit-dep/4.8.2

Ответ 3

если вы используете Eclipse, смотрите ваши зависимости POM и зависимость Eclipse от пути сборки на junit

если вы выбрали использование Junit4 eclipse, создайте TestCase, используя пакет org.junit, но ваш POM по умолчанию использует Junit3 (пакет junit.framework), как это показано на рисунке:

see JUNIT conflict

Просто обновите свою зависимость Junit в вашем POM файле до Junit4 или ваш Eclipse BuildPath до Junit3

Ответ 4

В моем случае виновник не отличался от папки ресурсов тестирования в pom.xml (сгенерированной проектом eclipse maven)

<build>
    <sourceDirectory>src</sourceDirectory>
    ....
</build>

Если вы переопределяете настройки исходных папок по умолчанию в pom файле, вы должны явно установить главные И тестовые исходные папки !!!!

<build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    ....
</build>