2013-04-03 2 views
23

나는 다음 테스트 케이스로 maven-plugin-testing-harness 버전 2.1을 사용하려고 해요 :구성 요소 조회 예외는

public class FooTest extends AbstractMojoTestCase { 
    @Override 
    protected void setUp() throws Exception { 
    super.setUp(); 
    } 
    public void testSomething() throws Exception { 
    // todo 
    } 
} 

테스트가 setUp() 호출에 실패

org.codehaus.plexus.component.repository.exception.ComponentLookupException: java.util.NoSuchElementException 
    role: org.apache.maven.repository.RepositorySystem 
roleHint: 
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:257) 
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:245) 
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:239) 
    at org.codehaus.plexus.PlexusTestCase.lookup(PlexusTestCase.java:206) 
    at org.apache.maven.plugin.testing.AbstractMojoTestCase.setUp(AbstractMojoTestCase.java:118) 
    at foo.FooTest.setUp(FooTest.java:54) 

이러한 종속성 나는 pom.xml에 있습니다

<dependency> 
     <groupId>org.apache.maven</groupId> 
     <artifactId>maven-plugin-api</artifactId> 
     <version>3.0.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.maven</groupId> 
     <artifactId>maven-model</artifactId> 
     <version>3.0.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.maven</groupId> 
     <artifactId>maven-core</artifactId> 
     <version>3.0.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.maven.plugin-testing</groupId> 
     <artifactId>maven-plugin-testing-harness</artifactId> 
     <version>2.1</version> 
     <scope>test</scope> 
    </dependency> 

아이디어가 있습니까?

+0

이 문제도 발생합니다. 나는 당신이 해결책을 찾았다 고 생각하지 않습니까? – ksclarke

+0

아니요, 아직 .. – yegor256

+1

가능한 중복 : http://stackoverflow.com/questions/14939341/error-injecting-defaultrepositorysystem-in-maven-plugin-testing-harness. 나는이 문제를 또한 가지고있다. – Noremac

답변

42

최근에 나는 같은 예외에 직면했다.

<dependency> 
    <groupId>org.apache.maven</groupId> 
    <artifactId>maven-compat</artifactId> 
    <version>3.0.5</version> 
    <scope>test</scope> 
</dependency> 
+0

좋아, 해결 됐어! 고마워요! 하지만 그게 무슨 상관이 있죠?! – carlspring

+0

이것은 최신 api와 새로운 api 사이의 호환성 레이어입니다. – smoke

6

누군가를 위해 여기를 떠나 앞으로이 문제에 실행 : 비트 조사한 후 그 받는다는-의 compat 플러그인이 문제를 해결 발견

연기의 대답이하는 일을하지만, 버전 확인 원래의 질문에서 yegor256에 포함 된 종속성을 비교합니다. org.apache.maven 추가 : maven-compat은 4 가지 종속성을 3.0.5 버전으로 변경하기 전까지 작동하지 않았습니다.

+0

이 오류가 발생하면 maven 버전을 변경하는 것이 해결책입니다. "java.langRuntimeException : org.codehaus.plexus.component.repository. IDEA 설정에서 Maven 저장소를 업데이트하는 동안 (설정 -> 빌드, 실행, 배포 -> 빌드 도구 -> Maven - > 저장소). – Krzysiek