[maven] Maven 3 및 JUnit 4 컴파일 문제 : org.junit 패키지가 없습니다.

Maven으로 간단한 Java 프로젝트를 빌드하려고합니다. 내 pom-file에서 JUnit 4.8.2를 유일한 종속성으로 선언합니다. Still Maven은 JUnit 버전 3.8.1 사용을 주장합니다. 어떻게 고치나요?

문제는 컴파일 실패로 나타납니다 : “패키지 org.junit가 존재하지 않습니다”. 이것은 내 소스 코드의 import 문 때문입니다. JUnit 4. *의 올바른 패키지 이름은 org.junit. *이고 버전 3. *에서는 junit.framework. *입니다.

http://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html 에서 문제의 원인에 대한 문서를 찾았다 고 생각 하지만 거기에있는 조언은 Maven 전문가를위한 것 같습니다. 나는 무엇을 해야할지 이해하지 못했다.



답변

방문자를 돕기위한 완전한 솔루션으로 답변을 얻으려면 :

해야 할 일은 junit 종속성을 pom.xml. 잊지 마세요<scope>test</scope>

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>


답변

@Dennis Roberts : 당신은 절대적으로 옳았습니다 : 제 테스트 클래스는 src / main / java에있었습니다. 또한 JUnit 용 POM에있는 “범위”요소의 값은 “테스트”였지만, 그렇게되어 있어야합니다. 문제는 Eclipse에서 테스트 클래스를 만들 때 실수로 인해 src / test / java의 src / main / java에 생성되었습니다. 이것은 “mvn eclipse : eclipse”를 실행 한 후 Eclipse의 프로젝트 탐색기보기에서 더 쉽게 볼 수있게되었습니다. 그러나 귀하의 의견은 제가 처음으로 보게 한 것입니다. 감사.


답변

내 문제는 내 문제 를 해결하는 일반 구조 폴더를 사용하도록 만든이 줄을 제거 pom.xml하는 줄 <sourceDirectory>${basedir}/src</sourceDirectory>이 내 안에있는 줄이었습니다.


답변

junit에 대한 pom.xml에서 범위 태그 제거가 작동했습니다.


답변

이 종속성을 pom.xml파일에 추가 하십시오.

http://mvnrepository.com/artifact/junit/junit-dep/4.8.2

<!-- https://mvnrepository.com/artifact/junit/junit-dep -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit-dep</artifactId>
    <version>4.8.2</version>
</dependency>


답변

나는 같은 문제가 있었다. 내가 한 것은-pom.xml 파일에서 junit 3.8에 대한 종속성을 삭제하고 junit 4.8에 대한 새 종속성을 추가했습니다. 그런 다음 maven을 청소하고 maven을 설치했습니다. 트릭을했습니다. 확인하기 위해 maven 설치 후 project-> properties-build path-> maven 종속성으로 이동하여 이제 junit 3.8 jar가 사라 졌음을 확인했습니다! 대신 junit 4.8 jar가 나열됩니다. 멋있는!!. 이제 내 테스트는 매력처럼 진행됩니다 ..이게 도움이 되길 ..


답변

제 사건은 단순한 감독이었습니다.

POM 파일 대신 노드 <dependencies>아래에 JUnit 종속성 선언을 넣었습니다 . 올바른 방법은 다음과 같습니다.<dependencyManagement/><project/>

<project>
<!-- Other elements -->
    <dependencies>
    <!-- Other dependencies-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
    </dependencies>
<project>