配置站点描述符

当您想要覆盖站点的导航树时,您可以为您的项目创建自己的站点描述符。例如,除了生成的报告之外,您还想向您的站点添加其他内容。为了在生成的站点中可以访问它,您必须配置站点描述符。您在名为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 -topnavigation-bottombottom

如果你想隐藏发布日期,你可以在你的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>

遗产

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

在 Maven 2 中,站点描述符会自动附加到打包设置为“pom”的项目中。

默认情况下,仅继承基本设置。从正文中,只有链接被继承,这些累积起来包含所有父母的站点描述符链接。

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

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

包括生成的内容

基于格式的目录结构中的文件可以通过其目标 HTML 文件名链接到,例如$ basedir /src/site/apt/foo.apt$ basedir /src/site/fml/faq.fml可以通过以下方式链接到:

<project>
  ...
  <body>
    ...
    <menu name="Foo" href="foo.html" />
    <menu name="FAQ" href="faq.html" />
    ...
  </body>
  ...
</project>

还有几个预设菜单可用于站点描述符,以包含项目生成的内容。这些通过ref属性链接,如下所示:

<project>
  ...
  <body>
    ...
    <menu ref="modules" />
    ...
  </body>
  ...
</project>

注意:使用${reports}${parent}${modules}的旧语法已被弃用,建议您改用新语法。对旧语法的支持将在站点插件的未来版本中删除。

当前可用的预设菜单有:

  • 报告- 一个菜单,其中包含指向您项目的所有生成报告的链接
  • 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}。呈现站点时将评估每个表达式。

表达式可以是:

  • ${project.*},例如<project><organization><name>中引用的${project.organization.name}
  • ${project.properties},例如<project><properties><myProperty>中引用的${myProperty}
  • ${environmentVariable},例如${JAVA_HOME}

注意:此插件的 2.0-beta-5 版本中支持某些表达式,例如${project.name}。从 2.0-beta-6 版本开始提供全面支持。