Давайте представим, у меня есть следующий харизмы:Maven: Получить конфигурацию цели от выполнения элемента
@Mojo(name = "some-goal")
public class MyMojo {
@Parameter(required = true)
protected ComplexObject param;
/*...*/
}
Также у меня есть дескриптор плагина в П:
<plugin>
<!-- here artifact description -->
<executions>
<execution>
<phase>...</phase>
<goals><goal>some-goal</goal></goals>
<configuration>
<param>...</param>
</configuration>
</execution>
</executions>
</plugin>
Для теста этого плагина я использую Maven-плагин -тестирование-жгут
И мой тестовый код:
@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() {
}
};
Но когда я запускаю тест он терпит неудачу с Exception:
org.apache.maven.plugin.testing.ConfigurationException: Не удается найти конфигурацию элемент для плагина с артефактом {имя плагина}.
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)
Когда я отлаживать источник мавена-плагин-тестирование-жгутов я заметил, что он прочитал конфигурацию из единственного корневого элемента плагина.
Как я могу заставить его прочитать конфигурацию из исполнительного элемента?
Вы решили ситуацию? – Adam
К сожалению нет. Я сделал обходной путь. –
Да, я сочувствую. Я посмотрел на исходный код. Это очень просто, жестко закодировано, неконфигурируется. Но достаточно легко изменить в своих целях, если вы решили разветвить источник. – Adam