2013-04-03 9 views
23

Sto cercando di utilizzare maven-plugin-testing-harness versione 2.1 con il seguente test case:eccezione di ricerca componente org.apache.maven.repository.RepositorySystem nei test plug Maven

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

Il test ha esito negativo al call 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) 

Queste dipendenze ho nel 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> 

Qualche idea?

+0

Ho anche questo problema. Non credo che tu abbia trovato una soluzione, vero? – ksclarke

+0

No, non ancora .. – yegor256

+1

Possibile duplicato: http://stackoverflow.com/questions/14939341/error-injecting-defaultrepositorysystem-in-maven-plugin-testing-harness. Sto avendo questo problema pure. – Noremac

risposta

42

Recentemente ho affrontato la stessa eccezione. Dopo un po 'indagando ho trovato quel plugin Maven-compat risolve il problema:

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

Ok, questo l'ha risolto! Molte grazie! Ma cosa c'entra questo con qualsiasi cosa ...?! – carlspring

+0

Questo è un tipo di livello di compatibilità tra più recenti maven api e plugin che non sono per la più recente api – smoke

6

Lasciando questo qui per chi si imbatte in questo problema in futuro: risposta

di fumo funziona, ma assicurarsi che le versioni delle dipendenze incluse in yegor256 nella corrispondenza della domanda originale. Aggiungendo org.apache.maven: maven-compat non ha funzionato per me finché non ho modificato le 4 dipendenze per avere anche la versione 3.0.5.

+0

La versione di modifica di maven è anche la soluzione quando si ottiene questo errore "java.langRuntimeException: org.codehaus.plexus.component.repository. exception.ComponentLookupException: java.util.NoSuchElementException, ruolo: org.apache.maven.execution.MavenExecutionRequestPopulator " mentre si tenta di aggiornare i repository Maven nelle impostazioni IDEA (Impostazioni -> Build, Execution, Deployment -> Build Tools -> Maven - > Archivi). – Krzysiek

Problemi correlati