Maven Site Plugin: Как работает наследование меню? - PullRequest
3 голосов
/ 06 августа 2010

Если у меня есть многомодульный проект, как я могу унаследовать меню от родительского 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 из ext я использовал:

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

Я получаю меню, но без ссылок.

Я также пытался определить меню в главном проекте site.xml, но результат тот же.

1 Ответ

3 голосов
/ 16 марта 2011

Я заметил три вещи:

Первое уведомление: Вы должны указать атрибут наследования в site.xml родительского POM, а не в дочернем POM. И в site.xml дочернего POM, не переопределяйте меню для наследования вообще.

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 должен иметь "main" или "parent" в качестве родителя в pom.xml.

...