在顶级项目上运行mvn site时,Maven 将为 pom 的modules部分中定义的每个模块单独构建所有站点。请注意,每个站点都是在每个单独项目的目标位置生成的。结果,不同模块之间的相对链接将不起作用。但是,当您部署或暂存站点时,它们将起作用。
要预览多模块站点的整个树,您可以使用site:stage目标。这会将各个站点复制到暂存位置的适当位置。
site:deploy与site:stage做同样的事情,但使用 pom 的<distributionManagement>元素中定义的 url这通常是一个远程 url,但同时支持像scp这样的远程协议和像文件这样的本地协议。
最后,site:stage-deploy与site:deploy执行相同的操作,但使用stagingDirectory参数作为部署位置。这可用于将站点部署到远程暂存区域(site:stage始终是本地的)。
笔记:
站点描述符的继承方式与项目描述符的继承方式相同。如果您希望继承项目的站点描述符,则需要将其附加到项目的主工件。您使用site:attach-descriptor目标将站点描述符附加到项目的主要工件。
在 Maven 3 中,您必须自己附加站点描述符,即使对于打包设置为“pom”的项目也是如此。
默认情况下,所有父描述符设置都被继承,只有菜单例外,见下文。从正文开始,链接和面包屑累积起来包含所有父级的站点描述符链接和面包屑。如果父级包含一些面包屑而继承的站点描述符不包含,则会自动添加具有当前站点描述符名称的面包屑。
但是,也可以继承菜单。为此,请使用站点描述符中的继承属性。这可以是top或bottom,指示将放置继承菜单的位置。例如:
<project> ... <body> ... <menu name="My Inherited Menu" inherit="top"> ... </menu> ... </body> ... </project>
一些报告可以针对每个模块的总和运行:这些是聚合报告。这是 maven-javadoc-plugin、maven-jxr-plugin 或 maven-checkstyle-plugin 的情况。
要从聚合报告中受益,您必须在父 pom 中配置一个 reportSet,并关闭继承以避免聚合报告在模块中运行。例如,使用 maven-jxr-report:
<project> ... <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> <version>2.3</version> <reportSets> <reportSet> <id>aggregate</id> <inherited>false</inherited> <reports> <report>aggregate</report> </reports> </reportSet> </reportSets> </plugin> </plugins> </reporting> ... </project>