Почему мой плагин Maven не получает родительские свойства? - PullRequest
1 голос
/ 03 августа 2009

Когда я заставляю один плагин расширять другой, он обычно наследует свойства от родителя. Иногда это не работает, хотя. Когда плагин загружен, все свойства родительского элемента имеют значение null

Что я могу делать не так? Я упаковываю свой проект как maven-плагин, и он собирается нормально.

1 Ответ

1 голос
/ 03 августа 2009

Я сам видел это, и это сводило меня с ума, пока я не отладил внутреннее устройство Plexus. Я предполагаю, что свойства не наследуются, когда родитель находится в другом плагине?

Если это так, объяснение ниже поможет. Если это не так, это может быть опечатка в аннотациях Javadoc. Maven будет пропускать любые теги, которые он не распознает, без предупреждения.

Если это не так, вы можете опубликовать немного больше деталей? возможно, пример неудачного Моджо?


Если родитель находится в другом проекте, вот причина, по которой у вас возникли проблемы.

Плагины Maven используют аннотации Javadoc для определения зависимостей, деклараций целей и других конфигураций (в Maven 2.1 введены правильные аннотации Java, но вряд ли их используют пока какие-либо плагины). После того, как плагин был установлен / развернут, Javadoc теряется, поэтому любой плагин, который расширяет плагин в другом jar , не будет иметь доступа к свойствам, определенным в сплетении, в родительском .

Хотя есть обходной путь. Метаданные плагина выводятся в META-INF / maven / plugin.xml. Существует сторонний плагин , который считывает информацию из plugin.xml родительского Mojo и объединяет с ним метаданные локального плагина. Ваш плагин должен тогда работать как обычно.

...