Плагин сайта Maven: как работает наследование меню?

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


person Aaron Digulla    schedule 06.08.2010    source источник


Ответы (1)


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

Первое замечание: вы должны указать атрибут наследования в 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.

person Martin Ackermann    schedule 16.03.2011
comment
Спасибо, я попробую это, когда в следующий раз буду обновлять проекты. - person Aaron Digulla; 18.03.2011