将“project health”属性添加到pom.xml以进行第三方依赖关系监视

时间:2013-03-28 09:35:23

标签: maven pom.xml

我正在与一个拥有大量项目的组织合作,所有项目都由maven(带有一些自定义插件)管理,所有项目都带有pom.xml。

虽然大多数项目是在内部开发的,但有些项目是外部(例如开源)项目,这些项目都有自己的POM。

我的任务是为这些外部项目POM添加一些标签,内部项目报告工具可以使用这些标签(参见this question)来报告这些“外部”项目,这些项目提供了一个URL。项目的网站和关于项目“健康”的简短声明(例如邮件列表是活跃的,没有迹象表明项目即将死亡)。

对于项目的网址,我希望我可以使用Organization部分中提供的网址。

我可以将“projectHealth”和“status”标签添加到组织部分吗? e.g。

  <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>

然后我可以通过“status”标签检测“外部”项目,并在我的报告中发布健康声明。

我的意思是,这不会破坏任何其他插件,不是吗?

或者是否存在首选的现有协议?

1 个答案:

答案 0 :(得分: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>

不幸的是,它会污染现有的描述,并且您不会对该内容进行任何静态验证。