maven 오류 : org.junit 패키지가 없습니다.


79

maven으로 javadoc을 만들려고하는데 실패합니다. 확인을 수행 할 때도 실패합니다.

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 파일이 있습니다.

miquel@ubuntu:~/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
miquel@ubuntu:~/creaveu/createOmegaMatrix$

지금은 액세스 할 수없는 랩톱에서 다음을 실행하기 때문에 코드는 괜찮습니다.

mvn javadoc:javadoc
mvn verify

문제가 없으며 테스트도 Eclipse IDE에서 작동합니다.


동일한 증상, 다른 원인 : stackoverflow.com/q/5845990/923560
Abdull

답변:


158

좋아, 당신은 클래스에 대해서만 junit종속성을 선언했습니다 test(에 src/test/java있지만 main클래스 에서 사용하려고합니다 (에있는 것 src/main/java).

기본 클래스에서 사용하지 않거나 <scope>test</scope>.


2
제길!!! 목표 확인으로 문제를 해결했습니다. 이제 javadoc에 대해 다른 문제가 있지만 Latex에 관한 것입니다. 그래서 문제가 해결되었습니다 !!! 감사합니다 @Andrew
테마

내 POM 파일에서 범위 테스트를 제거하면 이전에 오류가 발생하지 않지만 테스트 케이스가 실행되지 않습니다 (위에서 언급 한 것과 동일). 내 테스트는 src / test / java 아래에 있으며 src / main / java에있는 lib가 거의 없습니다.
OverrockSTAR

1
<scope> test </ scope>로 부모 pom의 범위를 지정할 수 있으며 자식 모듈이 테스트 계층 구조에 없을 때 junit을 사용하는 경우 <scope> compile </ scope>로 자식 pom을 가질 수 있습니다.
Daniel

JUnit 종속성에 대한 테스트 범위를 사용할 때 왜이 문제가 발생하는지 궁금합니다. ... / src / test / java / com / ... RuleTest.java:[3,24] package org.junit does not exist
Panu Haaramo

30

다음 코드 줄을 삽입하여이 오류를 수정했습니다.

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

<dependencies> 노드로.

자세한 내용은 http://mvnrepository.com/artifact/junit/junit-dep/4.8.2를 참조하십시오 .


<scope>test</scope>종속성 섹션에서 태그 를 생략했기 때문에 이것은 나쁜 솔루션 입니다. 즉, 테스트가 프로덕션 코드로 컴파일됩니다.
LightCC

15

Eclipse를 사용하는 경우 POM 종속성과 junit에 대한 Eclipse 빌드 경로 종속성을 확인하십시오.

Junit4 eclipse 사용을 선택하면 org.junit 패키지를 사용하여 TestCase를 작성하지만 POM은 기본적으로 Junit3 (junit.framework 패키지)을 사용하여이 그림과 같이 원인입니다.

JUNIT 충돌 참조

POM 파일의 Junit 종속성을 Junit4로 업데이트하거나 Eclipse BuildPath를 Junit3으로 업데이트하십시오.


2 년 전에이 질문을했는데 지금은 더 이상 작업하지 않습니다. 적어도 지금 은요. 하지만 대답 해 주셔서 감사합니다. 어떻게 든 폐쇄로 설정해야하는지 모르겠습니다.
테마

1
트윗 담아 가기 나는 maven과 일하고 있지 않지만 내 질문이 다른 사람들에게 도움이되는 것을 보게되어 기쁩니다.) 또한 대답을 위해 Grubhart를 thnx. :)
테마

6

필자의 경우 범인은 pom.xml (eclipse maven 프로젝트에서 생성됨) 내의 기본 및 테스트 소스 폴더를 구별하지 못했습니다.

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

pom 파일의 기본 소스 폴더 설정을 재정의하는 경우 기본 및 테스트 소스 폴더를 명시 적으로 설정해야합니다 !!!!

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

소스 디렉토리 구성을 제거하면 저에게 효과적이었습니다. 그러나 귀하의 의견이 도움이되었습니다.
Karthik P
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.