Давайте представим, что у меня есть следующее моджо:
@Mojo(name = "some-goal")
public class MyMojo {
@Parameter(required = true)
protected ComplexObject param;
/*...*/
}
Также у меня есть дескриптор плагина в pom:
<plugin>
<!-- here artifact description -->
<executions>
<execution>
<phase>...</phase>
<goals><goal>some-goal</goal></goals>
<configuration>
<param>...</param>
</configuration>
</execution>
</executions>
</plugin>
Для тестирования этого плагина я использую maven-plugin-testing-harness.
И мой тестовый код:
@Test
public void test() throws Exception {
File pom = getFile("mix/pom.xml");
MyMojo plugin = (MyMojo) rule.lookupMojo("some-goal", pom);
/*....*/
}
Где правило:
@Rule
public MojoRule rule = new MojoRule() {
@Override
protected void before() throws Throwable {
}
@Override
protected void after() {
}
};
Но когда я запускаю тест, он терпит неудачу с исключением:
org.apache.maven.plugin.testing.ConfigurationException: не удается найти элемент конфигурации для подключаемого модуля с идентификатором артефакта {plugin-name}.
at org.apache.maven.plugin.testing.AbstractMojoTestCase.extractPluginConfiguration(AbstractMojoTestCase.java:619)
at org.apache.maven.plugin.testing.AbstractMojoTestCase.extractPluginConfiguration(AbstractMojoTestCase.java:582)
at org.apache.maven.plugin.testing.AbstractMojoTestCase.lookupMojo(AbstractMojoTestCase.java:353)
at org.apache.maven.plugin.testing.MojoRule.lookupMojo(MojoRule.java:164)
Когда я отлаживаю источник maven-plugin-testing-harness, я заметил, что он считывает конфигурацию только из корневого элемента плагина.
Как я могу заставить его читать конфигурацию из исполнительного элемента?