Не удалось найти требуемый компонент: java.util.NoSuchElementException

Я начал тестировать подключаемый модуль 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

Любые советы, как справиться с этой проблемой?


person Steffi S.    schedule 29.07.2015    source источник


Ответы (1)


Очевидно, этот плагин как-то затерялся, его повторное добавление привело к исчезновению исключения:

        <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>
person Steffi S.    schedule 30.07.2015