component lookup exception with org.apache.maven.repository.RepositorySystem in Maven plugin testing
Solution 1
Recently I faced the same exception. After a bit researching I found that maven-compat plugin solves the problem:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
<version>3.0.5</version>
<scope>test</scope>
</dependency>
Solution 2
Leaving this here for anyone who runs into this problem in the future:
smoke's answer does work, but make sure the versions of the dependencies included in yegor256's in the original question match. Adding org.apache.maven:maven-compat did not work for me until I had changed those 4 dependencies to also have version 3.0.5.
Solution 3
Currently, the class org.apache.maven.repository.RepositorySystem is found in the lib maven-resolver-api. If after adding maven-compat, anybody here still gets the error, make sure to add maven-resolver-api artifact as dependency as well.
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-api</artifactId>
<version>1.3.1</version>
</dependency>
yegor256
Lab director at Huawei, co-founder at Zerocracy, blogger at yegor256.com, author of Elegant Objects book; architect of Zold.
Updated on June 24, 2022Comments
-
yegor256 about 2 years
I'm trying to use
maven-plugin-testing-harness
version 2.1 with the following test case:public class FooTest extends AbstractMojoTestCase { @Override protected void setUp() throws Exception { super.setUp(); } public void testSomething() throws Exception { // todo } }
The test fails at the
setUp()
call: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)
These dependencies I have in the
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>
Any ideas?