Можно ли использовать атрибуты XML в блоке конфигурации плагина Maven? - PullRequest
3 голосов
/ 05 января 2012

Я хочу поработать над плагином Maven, и как часть его конфигурации (которая будет сопоставлена ​​с полями mojo) я хотел бы предоставить атрибуты XML для нескольких тегов.К сожалению, официальное руководство не упоминает об использовании атрибутов в блоках конфигурации (что может означать или не означать, что это просто невозможно).это:

<plugin>
  <configuration>
    <my_option attr="x" /> <!-- is this possible? -->
  </configuration>
</plugin>

Возможно ли это вообще?Если да, то как эта карта будет отображаться в поле моего моджо?

Ответы [ 2 ]

2 голосов
/ 05 января 2012

Неа.Maven не поддерживает атрибуты.Однако вы можете использовать карту строк или около того.Посмотрите, например, как плагин компилятора выполняет compilerArguments или плагин Android Maven (над которым вы работаете) выполняет jvmArguments в конфигурации dex mojo.

1 голос
/ 26 сентября 2015

Я знаю, что опоздал на вопрос, но думаю, что ответ другой.В конце концов, плагин Maven antrun работает именно так, как хотел OP;Посмотрите, как target может предоставить любой XML, который вы можете использовать в ant файле сборки.

Это делается в mojo, объявив этот параметр с типом PlexusConfiguration, см. в строках 164-171 .

PlexusConfiguration не расширяет ни одного известного XML API, такого как DOM, и, похоже, не поддерживает пространства имен, PI и т. Д., Но имеет базовый getChildren/ getAttributeNames / getAttribute методы, которые вы хотели бы использовать для большинства целей.

Есть ли способ сделать это более современным способом JSR-330 (non-Plexus) , IНе знаю, но что касается API-интерфейсов Plexus, в документе говорится: «Эти API-интерфейсы будут поддерживаться вечно или, по крайней мере, до тех пор, пока Maven полностью не прекратит поддержку Maven 2.» *

...