15.7.3. 可重用的web站点皮肤

如果你的组织创建了很多Maven项目站点,那么你就会想要在整个组织范围内重用站点模板和定制CSS。如果你想让三十个项目都共享同样的CSS和站点模板,你可以使用Maven对于皮肤的支持。Maven的站点皮肤允许你将资源和模板打包,以让其它项目重用,而不用为所有需要自定义的项目重复创建模板。

你可以定义自己的皮肤,但可能你也会想要使用Maven的可选皮肤。你可以选择下面的几个皮肤。每个皮肤都提供了其自己的导航风格,内容,logo,和模板:

  • Maven经典皮肤 - org.apache.maven.skins:maven-classic-skin:1.0

  • Maven默认皮肤 - org.apache.maven.skins:maven-default-skin:1.0

  • Maven Stylus皮肤 - org.apache.maven.skins:maven-stylus-skin:1.0.1

你可以在Maven仓库中找到一个最新的皮肤完整列表:

http://repo1.maven.org/maven2/org/apache/maven/skins/

创建一个自定义的皮肤其实只是简单的将你自定义的maven-theme.css等内容封装成一个Maven项目,这样就能根据groupIdartifactId,和version引用它。它可以包含一些资源,如图片,以及用来替换默认模板,生成完全不同XHTML结构的站点模板(用Velocity编写)。大部分情况下,自定义的CSS就可以满足你需要的变化。为了演示该功能,让我们为sample-project项目创建一个皮肤,开始先创建一个自定义的maven-theme.css

在我们开始编写自定义CSS之前,我们需要创建一个单独的Maven项目,以便让sample-project的站点描述符引用它。首先,使用Maven的archetype插件创建一个基本的项目。在sample-project项目根目录的上一层目录运行如下的命令:

$ mvn archetype:create -DartifactId=sample-site-skin -DgroupId=com.sonatyp.maven

这会创建一个名为sample-site-skin的项目(以及一个目录)。切换当前目录为sample-site-skin目录,删除所有源码和测试代码,然后创建一个目录来存储皮肤资源:

$ cd sample-site-skin
$ rm -rf src/main/java src/test
$ mkdir src/main/resources