Подтвердить что ты не робот

Может ли плагин Maven автоматически просматривать тег "Конфигурация" из раздела "Выполнение"?

Я анализирую плагин Maven, который я могу настроить внутри раздела configuration plugin:

<plugin>
     ...
     <executions>...</executions>
     <configuration>
         <!-- items placed here are visible to the MOJO -->
     </configuration>
</plugin>

Плагин полностью игнорирует любые элементы конфигурации для execution, хотя:

<plugin>
     ...
     <executions>
         <execution>
             <id>execution1</id>
             <phase>test</phase>
             <goals><goal>test</goal></goals>
             <configuration>
                <!-- items placed here are ignored -->
             </configuration>
         </execution>
     </executions>
</plugin>

Я запускаю Maven с mvn test. Я уверен, что выполнение выполняется, так как Maven корректно печатает его id, но плагин не настроен - выводит предупреждения о неправильных настройках, которые отсутствуют, когда раздел <configuration> перемещается за пределы <executions>.

Вопрос: - это способ, которым плагин реализован, что он принимает только конфигурацию "верхнего уровня"? Я изучил его исходный код, и мне показалось, что он Maven, который вызывает сеттеры в классе MOJO, и он прозрачен для плагина, в какой раздел включены параметры.

MOJO аннотируется с помощью:

* @component
* @goal test
* @phase test
* @execute phase="jasmine-process-test-resources"
4b9b3361

Ответ 1

В этом подключаемом модуле используется пользовательский жизненный цикл.

Развернутый пользовательский жизненный цикл будет иметь исполнение с указанным id (execution1) удален (так как это разветвленный жизненный цикл)

Таким образом, любая из целей плагина, выполняемых разветвленным жизненным циклом, будет отсутствовать в их конфигурации. Главное моджо должно получить конфигурацию, но то, что происходит не так, - это разветвленные жизненные циклы.

Я предполагаю, какой плагин он есть, если моя догадка правильная, это пользовательский жизненный цикл, и предупреждения, которые вы видите от, например другие mojos с текстом вроде

JavaScript source folder was expected but was not found. Set configuration property
`jsSrcDir` to the directory containing your JavaScript sources. Skipping 
jasmine:resources processing.

В такой ситуации вам нужно либо поместить раздел <configuration> во внешний блок, либо настроить выполнение для жизненного цикла.

Конфигурирование выполнения для жизненного цикла потребует добавления исполнений с помощью id, которые имеют магический формат. Я не уверен на 100%, но в вашем случае вы определяете дополнительное выполнение с помощью id либо default-resources, либо jasmine-lifecycle-resources, чтобы убедиться в его конфигурации.

Менее сложным способом является просто установить конфигурацию во внешний раздел и сделать с ней.