Maven Site插件:菜单继承如何工作?

时间:2010-08-06 08:36:08

标签: maven-2 inheritance menu maven-site-plugin

如果我有一个多模块项目,如何从父POM继承菜单?项目布局是:

main <-- main project which just contains modules
   parent   <-- parent POM
   ext      <-- 3rd party code

我在父母的site.xml尝试了这个:

<menu name="Projects">
   <item name="Main Project" href="${web-root}/" collapse="false">
      <item name="Parent POM" href="${web-root}/parent/" />
      <item name="3rd Party" href="${web-root}/ext/">
   </item>
</menu>

site.xml的{​​{1}}中,我使用了:

ext

我收到菜单但没有链接。

我还尝试在主项目的<menu name="Projects" inherit="top" /> 中定义菜单,但结果是一样的。

1 个答案:

答案 0 :(得分:3)

我发现了三件事:

首先注意:您必须在父POM的site.xml中指定inherit属性,而不是在子POM中。在子POM的site.xml中,不要重新指定要继承的菜单。

父母的site.xml:

<menu name="Projects" inherit="top">
  <item ...>
  </item>
</menu>

子项的site.xml:没有名称=“项目”的菜单定义。

第二次注意:您的项目结构的链接可以自动构建:

父母的site.xml:

<!-- Inherit this menu for sub modules. -->
<menu ref="parent" inherit="top" />

<!-- Inherit this menu for sub modules. -->
<menu name="Sub Modules" ref="modules" inherit="bottom" />

这将为您生成所有模块间链接。

第三次通知:网站描述符沿着与项目描述符相同的行继承。如果您的模块“ext”应该从其他模块继承网站描述符中的菜单条目,则ext必须在pom.xml中将“main”或“parent”作为父级。