Я начал тестировать подключаемый модуль Maven через maven-invoker-plugin
и застрял со странным исключением:
[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- позаимствовал settings.xml из этот подключаемый модуль 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
Любые советы, как справиться с этой проблемой?