Maven插件测试中具有org.apache.maven.repository.RepositorySystem的组件查找异常

问题描述 投票:26回答:3

我正在尝试在以下测试案例中使用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>

有什么想法吗?

java maven-3 maven-plugin
3个回答
49
投票
最近我遇到了同样的异常。经过一些研究,我发现maven-compat插件可以解决问题:

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


7
投票
将其留给以后遇到此问题的任何人:

烟的答案确实有效,但请确保原始问题中yegor256所包含的依赖项版本匹配。在我将这4个依赖项更改为3.0.5版本之前,添加org.apache.maven:maven-compat对我不起作用。


0
投票
当前,类

org.apache.maven.repository.RepositorySystem

© www.soinside.com 2019 - 2024. All rights reserved.