在顶级项目上运行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 2 中,站点描述符会自动附加到打包设置为“pom”的项目中。
默认情况下,所有父描述符设置都被继承,只有菜单例外,见下文。从正文开始,链接和面包屑累积起来包含所有父级的站点描述符链接和面包屑。如果父级包含一些面包屑而继承的站点描述符不包含,则会自动添加具有当前站点描述符名称的面包屑。
但是,也可以继承菜单。为此,请使用站点描述符中的继承属性。这可以是top或bottom,指示将放置继承菜单的位置。例如:
<project> ... <body> ... <menu name="My Inherited Menu" inherit="top"> ... </menu> ... </body> ... </project>