我开始通过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>我--呃--从这个Maven插件那里借了那本书。在需要测试的pom.xml中失败的是这样的调用:
<plugin>
<groupId>my.company</groupId>
<artifactId>plugin</artifactId>
<version>@project.version@</version>
</plugin>在进一步挖掘之后,我认为Tycho至少是问题的一部分:
<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 (正如这里所建议的),但它什么也没做。
当我没有在pom.xml中添加插件,但通过以下方式调用它时,也会显示相同的异常:
invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:goal有什么建议如何处理这个问题吗?
发布于 2015-07-30 11:52:12
显然,这个插件不知何故丢失了,它又一次使例外情况消失了:
<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>https://stackoverflow.com/questions/31701040
复制相似问题