2014-10-14 1 views
1

나는 Maven의 시작 단계에있다. 프로젝트를 만들고 명령을 사용하려고했습니다. 내 마지막에는 무엇이 빠져 있니? 나는 컴파일하고있는 TestSuite 파일을 실행하려고 :Maven을 사용하여 프로젝트를 빌드하는 동안 JUNIT Jar 예외가 나타나지 않는다.

mvn clean package 

의 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.test.myProject</groupId> 
    <artifactId>myTest</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>egdsvTest</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 

을하지만 난 그것을 사용 후 아래 예외를 얻을.

예외 메이븐 바탕 화면에서 로컬 저장소 또는 설치 한 기계 받는다는를 생성하고이 목표를 실행하여 작동

D:\MVN_Shirish_Project\Test>mvn clean package 
    [INFO] Scanning for projects... 
    [INFO] 
    [INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethrea 
    ded.SingleThreadedBuilder with a thread count of 1 
    [INFO] 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Building Test 1.0-SNAPSHOT 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] 
    [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Test --- 
    [INFO] Deleting D:\MVN_Shirish_Project\Test\target 
    [INFO] 
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Test 
    --- 
    [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, 
    i.e. build is platform dependent! 
    [INFO] skip non existing resourceDirectory D:\MVN_Shirish_Project\Test\src\ 
    main\resources 
    [INFO] 
    [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ Test --- 

    [WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. b 
    uild is platform dependent! 
    [INFO] Compiling 1 source file to D:\MVN_Shirish_Project\Test\target\classe 
    s 
    [INFO] 
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ eg 
    dsvTest --- 
    [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, 
    i.e. build is platform dependent! 
    [INFO] skip non existing resourceDirectory D:\MVN_Shirish_Project\Test\src\ 
    test\resources 
    [INFO] 
    [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ 
    Test --- 
    [WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. b 
    uild is platform dependent! 
    [INFO] Compiling 1 source file to D:\MVN_Shirish_Project\Test\target\test-c 
    lasses 
    [INFO] 
    [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ Test --- 
    [INFO] Surefire report directory: D:\MVN_Shirish_Project\Test\target\surefi 
    re-reports 
    [WARNING] Missing POM for org.apache.maven.surefire:surefire-junit3:jar:2.12.4 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] BUILD FAILURE 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Total time: 0.968 s 
    [INFO] Finished at: 2014-10-14T12:28:09+05:30 
    [INFO] Final Memory: 7M/247M 
    [INFO] ------------------------------------------------------------------------ 
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2. 
    12.4:test (default-test) on project Test: Unable to generate classpath: org 
    .apache.maven.artifact.resolver.MultipleArtifactsNotFoundException: Missing: 
    [ERROR] ---------- 
    [ERROR] 1) org.apache.maven.surefire:surefire-junit3:jar:2.12.4 
    [ERROR] 
    [ERROR] Try downloading the file manually from the project website. 
    [ERROR] 
    [ERROR] Then, install it using the command: 
    [ERROR] mvn install:install-file -DgroupId=org.apache.maven.surefire -DartifactI 
    d=surefire-junit3 -Dversion=2.12.4 -Dpackaging=jar -Dfile=/path/to/file 
    [ERROR] 
    [ERROR] Alternatively, if you host your own repository you can deploy the file t 
    here: 
    [ERROR] mvn deploy:deploy-file -DgroupId=org.apache.maven.surefire -DartifactId= 
    surefire-junit3 -Dversion=2.12.4 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url 
    ] -DrepositoryId=[id] 
    [ERROR] 
    [ERROR] Path to dependency: 
    [ERROR] 1) dummy:dummy:jar:1.0 
    [ERROR] 2) org.apache.maven.surefire:surefire-junit3:jar:2.12.4 
    [ERROR] 
    [ERROR] ---------- 
    [ERROR] 1 required artifact is missing. 
    [ERROR] 
    [ERROR] for artifact: 
    [ERROR] dummy:dummy:jar:1.0 
    [ERROR] 
    [ERROR] from the specified remote repositories: 
    [ERROR] m1 (http://repo1.maven.org/maven2, releases=true, snapshots=false) 
    [ERROR] -> [Help 1] 
    [ERROR] 
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit 
    ch. 
    [ERROR] Re-run Maven using the -X switch to enable full debug logging. 
    [ERROR] 
    [ERROR] For more information about the errors and possible solutions, please rea 
    d the following articles: 
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionE 
    xception 
+0

'3.8.1'은 매우 오래된 JUnit 버전입니다. 특별히 이것을 사용해야 할 필요가 없다면 최신으로 업데이트 해보십시오 ('3.8.1'을'4.11'로 대체하십시오). 선택한 Surefire 플러그인이이 변경의 영향을 받으므로 문제가 해결 될 수도 있습니다. –

+0

@Duncan : Maven 저장소에서 JUNIT (4.8.1) 용 최신 jar 파일을 다운로드했지만 pom.xml 파일을 식별하기 위해이 jar 파일의 위치를 ​​알아 내야합니다. – sTg

+0

Maven을 사용하면 일반적으로 직접 다운로드하지 않습니다. 대신, 첫 번째 주석에서 설명한대로 POM 파일을 업데이트하면'mvn package'를 실행할 때 모든 것이 자동으로 발생해야합니다. –

답변

1

.

목표를 실행하는 프로세스에서 먼저 메모 M1 또는 M2에 나열된대로 중앙 저장소에서 모든 종속 jar 파일을 가져 와서 C : /Users/yourname/.m2에 저장합니다/저장소 폴더 (Windows 시스템을 사용한다고 가정) 또는 다른 OS 시스템의 해당 사용자 폴더.

그런 다음 주어진 목적에 따라 필요에 따라 jar를 사용하여 빌드를 실행합니다.

이제는 저장소에 연결하는 방법을 알아야하며 (사용자 디렉토리의 .m2 폴더에있는 settings.xml을 확인하십시오) 인터넷 중앙 maven 저장소에 연결할 수 있는지 확인하십시오 . 그렇지 않은 경우에는 jar 파일을 가져 와서 수동으로 설치하십시오. 일단 그렇게하면 나는이 문제를 지나쳐야한다고 생각합니다. 아직도 문제가 있다면 알려주세요.