无法查找所需组件:java.util.NoSuchElementException
Could not lookup required component: java.util.NoSuchElementException
我开始通过 maven-invoker-plugin
测试 Maven 插件,但遇到了一个奇怪的异常:
[ERROR] Failed to execute goal my.company:plugin:1.0.4-SNAPSHOT:goal on project org.acme.simple: Could not lookup required component: java.util.NoSuchElementException
[ERROR] role: my.company.plugin.SomeClass
我这样添加 maven-invoker-plugin
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>2.0.0</version>
<configuration>
<pomIncludes>
<pomInclude>simple/pom.xml</pomInclude>
</pomIncludes>
<cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
<settingsFile>src/it/settings.xml</settingsFile>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>install</goal>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
我 -erm- 从 this Maven plug-in 那里借来了 settings.xml。而要测试的pom.xml中失败的是这个调用:
<plugin>
<groupId>my.company</groupId>
<artifactId>plugin</artifactId>
<version>@project.version@</version>
</plugin>
经过进一步挖掘,我认为第谷至少是问题的一部分:
<packaging>eclipse-plugin</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>0.22.0</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
如果我删除 @project.version@
它可以工作,但它显然不是测试的插件的当前版本。所以我想我必须保留它。我尝试添加 maven-compat
(as suggested here),但它没有做任何事情。
我不在pom.xml中添加插件,而是通过
调用,同样出现异常
invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:goal
有什么处理这个问题的建议吗?
显然这个插件不知何故丢失了,再次添加它使异常消失:
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-metadata</artifactId>
<version>1.5.5</version>
<executions>
<execution>
<goals>
<goal>generate-metadata</goal>
<goal>generate-test-metadata</goal>
</goals>
</execution>
</executions>
</plugin>
我开始通过 maven-invoker-plugin
测试 Maven 插件,但遇到了一个奇怪的异常:
[ERROR] Failed to execute goal my.company:plugin:1.0.4-SNAPSHOT:goal on project org.acme.simple: Could not lookup required component: java.util.NoSuchElementException
[ERROR] role: my.company.plugin.SomeClass
我这样添加 maven-invoker-plugin
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>2.0.0</version>
<configuration>
<pomIncludes>
<pomInclude>simple/pom.xml</pomInclude>
</pomIncludes>
<cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
<settingsFile>src/it/settings.xml</settingsFile>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>install</goal>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
我 -erm- 从 this Maven plug-in 那里借来了 settings.xml。而要测试的pom.xml中失败的是这个调用:
<plugin>
<groupId>my.company</groupId>
<artifactId>plugin</artifactId>
<version>@project.version@</version>
</plugin>
经过进一步挖掘,我认为第谷至少是问题的一部分:
<packaging>eclipse-plugin</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>0.22.0</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
如果我删除 @project.version@
它可以工作,但它显然不是测试的插件的当前版本。所以我想我必须保留它。我尝试添加 maven-compat
(as suggested here),但它没有做任何事情。
我不在pom.xml中添加插件,而是通过
调用,同样出现异常invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:goal
有什么处理这个问题的建议吗?
显然这个插件不知何故丢失了,再次添加它使异常消失:
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-metadata</artifactId>
<version>1.5.5</version>
<executions>
<execution>
<goals>
<goal>generate-metadata</goal>
<goal>generate-test-metadata</goal>
</goals>
</execution>
</executions>
</plugin>