当您想要覆盖站点的导航树时,您可以为您的项目创建自己的站点描述符。例如,除了生成的报告之外,您还想向您的站点添加其他内容。为了在生成的站点中可以访问它,您必须配置站点描述符。您在名为site.xml的文件中创建站点描述符,该文件应位于您的src/site目录中。
如果您从 Maven 1.x 迁移,您会很想知道navigation.xml文件已被 Maven 2 中的站点描述符替换。格式几乎相同,因此您可能可以重用大部分旧文件。
有可用的站点描述符的 XML 架构参考。
站点描述符的 XML Schema 发布在http://maven.apache.org/xsd/decoration-1.0.0.xsd。
查看Maven 站点插件的站点描述符以获取真实示例。
每个生成页面的标题将是站点标题和当前页面标题的组合。默认情况下,站点插件将使用pom.xml文件中<name>元素的值作为站点标题。此页面的完整标题是“Maven 站点插件 - 配置站点描述符”。
如果您想使用不同的站点标题,但不想更改pom.xml中的<name>元素,您可以在site.xml中进行配置,如下所示:
<project name="My Site Title"> ... </project>
使用开箱即用的 Velocity 模板,“上次发布”日期的位置是可配置的。默认情况下,位置在左侧,但您可以更改它。为此,您可以将<publishDate>元素添加到您的site.xml,如下所示:
<project> ... <publishDate position="right"/> ... </project>
position属性可以具有以下值之一:left 、 right 、 navigation -top、navigation-bottom、bottom。
如果你想隐藏发布日期,你可以在你的site.xml中使用它:
<project> ... <publishDate position="none"/> ... </project>
“上次发布”日期的格式是W3C 推荐的 ISO 日期格式。由于网络拥有国际化、跨文化的受众,因此建议不要更改日期格式。
您可以在站点上显示项目的“版本”,方法是向site.xml添加<version>元素,如下所示:
<project> ... <version position="right"/> ... </project>
position属性可以具有与publishDate属性相同的值,见上文。如果省略position属性,则默认值为left。
如果你想隐藏版本,你可以在你的site.xml中使用它:
<project> ... <version position="none"/> ... </project>
您可以将自己的“Powered by”徽标添加到您的网站。为此,您可以在site.xml中添加一个<poweredBy>元素,如下所示:
<project> ... <poweredBy> <logo name="Maven" href="http://maven.apache.org/" img="http://maven.apache.org/images/logos/maven-feather.png"/> </poweredBy> ... </project>
站点描述符的继承方式与项目描述符的继承方式相同。当您部署一个项目时,它的站点描述符也会被部署,以便它可以被继承。
默认情况下,仅继承基本设置。从正文中,只有链接被继承,这些累积起来包含所有父母的站点描述符链接。
但是,也可以继承菜单。为此,请使用站点描述符中的继承属性。这可以是top或bottom,指示将放置继承菜单的位置。例如:
<project> ... <body> ... <menu name="My Inherited Menu" inherit="top"> ... </menu> ... </body> ... </project>
站点描述符中有几个预设菜单可用于包含项目生成的内容。这些是:
要包含预设菜单,请使用ref属性。例如:
<project> ... <body> ... <menu ref="modules" /> ... </body> ... </project>
注意:使用${reports}、${parent}和${modules}的旧语法已被弃用,建议您改用新语法。对旧语法的支持将在站点插件的未来版本中删除。
可以创建皮肤以一致的方式自定义网站的外观和感觉。有关创建皮肤的更多信息,请参阅创建皮肤。要在项目中使用特定皮肤,请使用站点描述符的皮肤元素。这是一个常规的工件或类似依赖的元素。例如,要使用Maven Classic Skin,您将包括:
<project> ... <skin> <groupId>org.apache.maven.skins</groupId> <artifactId>maven-classic-skin</artifactId> <version>1.0</version> </skin> ... </project>
注意: < version>元素是可选的,并且像插件一样,如果省略,将使用可用的最新版本。建议您始终指定一个版本,以便您的站点可以随着时间的推移而重现。
此皮肤将复制必要的资源,包括 CSS,并在必要时使用包含的备用 Velocity 模板来呈现站点。
如果您不指定皮肤,站点插件将使用Maven 默认皮肤。
site.xml可以包含一些表达式,例如$ {project.name}。呈现站点时将评估每个表达式。
表达式可以是:
注意:此插件的 2.0-beta-5 版本中支持某些表达式,例如${project.name}。从 2.0-beta-6 版本开始提供全面支持。