构建多模块站点

在顶级项目上运行mvn site ,maven 将为 pom 的modules部分中定义的每个模块单独构建所有站点。请注意,每个站点都是在每个单独项目的目标位置生成的。结果,不同模块之间的相对链接将不起作用。但是,当您部署或暂存站点时,它们将起作用。

暂存和部署

要预览多模块站点的整个树,您可以使用site:stage目标。这将构建整个站点并将各个站点复制到暂存位置的适当位置。

site:deploy与site:stage做同样的事情,但使用 pom 的<distributionManagement>元素中定义的 url这通常是一个远程 url,但同时支持scp文件协议。

最后,site:stage-deploy与site:deploy执行相同的操作,但使用stagingDirectory参数作为部署位置。这可用于将站点部署到远程暂存区域(site:stage始终是本地的)。

注意:如果子项目从父 POM 继承站点 URL,它们将自动附加其artifactId以形成其有效部署位置。这适用于项目 url 和 pom 的<distributionManagement>元素中定义的 url。如果您的多模块树不遵循 maven 约定,或者如果模块目录的命名与模块工件不同,则必须为每个子项目指定 url。另请参阅站点插件如何使用 POM 中的 <url> 元素?.

遗产

站点描述符的继承方式与项目描述符的继承方式相同。如果您希望继承项目的站点描述符,则需要将其附加到项目的主工件。您使用site:attach-descriptor目标将站点描述符附加到项目的主要工件。

在 Maven 3 中,您必须自己附加站点描述符,即使对于打包设置为“pom”的项目也是如此。

默认情况下,所有父描述符设置都被继承,只有菜单例外,见下文。从正文开始,链接和面包屑累积起来包含所有父级的站点描述符链接和面包屑。如果父级包含一些面包屑而继承的站点描述符不包含,则会自动添加具有当前站点描述符名称的面包屑。

但是,也可以继承菜单。为此,请使用站点描述符中的继承属性。这可以是topbottom,指示将放置继承菜单的位置。例如:

<project>
  ...
  <body>
    ...
    <menu name="My Inherited Menu" inherit="top">
      ...
    </menu>
    ...
  </body>
  ...
</project>