2013-03-28 2 views
0

Я работаю с организацией, которая имеет большой набор проектов, все из которых управляются maven (с некоторыми пользовательскими плагинами) и все с pom.xml ,Добавление атрибута «project health» в pom.xml для мониторинга зависимостей сторонних организаций

Хотя большинство проектов разрабатываются внутри страны, некоторые из проектов являются внешними (например, с открытым исходным кодом) проектами, которые поставляются со своей собственной POM.

Мне было поручено добавить некоторые теги к этим внешним POM-проектам проекта, которые могут использоваться внутренним инструментом отчетности по проектам (см. this question), чтобы сообщить об этих «внешних» проектах, которые предоставляют URL-адрес веб-сайта проекта и короткое заявление о «здоровье» проекта (например, список рассылки активен, никаких признаков того, что проект вот-вот умрет).

Для URL-адреса проекта я ожидаю, что могу использовать URL-адрес, указанный в разделе Organization.

Могу ли я добавить теги «projectHealth» и «status» в раздел организации? например

<organization> 
    <name>Codehaus Mojo</name> 
    <url>http://mojo.codehaus.org</url> 

    <status>external</status> 
    <projectHealth> 
     Mailing list at http://archive.codehaus.org/lists/org.codehaus.mojo.dev is 404. 
     Mailing list at http://markmail.org/list/org.codehaus.mojo.dev is active. 
     Project seems active. 
    </projectHealth> 

    </organization> 

Затем я могу обнаружить «внешние» проекты с помощью тега «статус» и опубликовать заявление о состоянии в своем отчете.

Я имею в виду, это не сломает какой-либо другой плагин, не так ли?

Или существует существующий протокол, который является предпочтительным?

ответ

1

pom.xml теги и структура определяются с помощью XSD (вы можете увидеть его на верхней части каждого pom.xml: xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd)

Этот XSD является очень строгим и не дают вам свободу, чтобы добавить теги здесь и там, не сломав что-то.

Стратегия, используемая стандартными плагинами отчетности проекта, позволяющая настраивать отчеты, заключается в использовании файла пакета (т. Е. Не pom.xml) (пример here). Поэтому я предлагаю вам сделать то же самое для своего внутреннего инструмента отчетности.

Альтернативой может быть размещение информации внутри объекта description в формате, который ваш инструмент может проанализировать. Я имею в виду что-то вроде этого

<description> 
    STATUS:external 
    MAILING LIST: http://archive.codehaus.org/lists/org.codehaus.mojo.dev 
    MAILING LIST: http://markmail.org/list/org.codehaus.mojo.dev 
    COMMENT: Project seems active 
</description> 

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

+0

Хм .. спасибо за это. Если мне нужно использовать другой «родительский» тег, не могу ли я переместить «status» и «projectHealth» в ''? Я бы предпочел не использовать ''. – KevinM

+0

Использование свойств может быть вариантом ... но будьте осторожны с ними, поскольку они наследуются. – ben75

+0

Спасибо за хед-ап. Я буду проверять и проверять, ожидаются ли результаты. – KevinM

Смежные вопросы