15.7.4. 创建自定义的主题CSS

接着,为定制皮肤编写自定义的CSS。Maven站点皮肤的CSS文件应该位于src/main/resources/css/maven-theme.css。不像site.css文件位于项目的站点特定源目录那样,maven-theme.css会被打包安装到本地Maven仓库的一个JAR构件中。为了让皮肤JAR文件包含maven-theme.css文件,它需要位于主项目资源目录:src/main/resources

如同自定义默认站点模板一样,你会想用简单的方法开始定制新的站点CSS。复制默认Maven皮肤的CSS到你的皮肤项目中。要获取默认主题文件的副本,访问maven-default-skin项目的src/main/resources/css/maven-theme.css,将其内容保存到你自己的皮肤文件中。

现在我们拥有了合适的基础主题,使用CSS从这个旧的site.css文件开始定制。使用如下内容替换#navcolumn h5 CSS块:

#navcolumn h5 {
  font-size: smaller;
  border: 1px solid #aaaaaa;
  background-color: #bbb;
  margin-top: 7px;
  margin-bottom: 2px;
  padding-top: 2px;
  padding-left: 2px;
  color: #000;
}

在成功定制maven-theme.css之后,构建并安装sample-site-skin JAR构件至你的本地仓库,运行:

$ mvn clean install

在安装完成之后,返回sample-project项目目录,如果你已经在本章前面定制了site.css,将site.css移动为site.css.bak,这样它就不再影响Maven Site插件的输出:

$ mv src/site/resources/css/site.css src/site/resources/css/site.css.bak

要在sample-project的站点中使用sample-site-skin,你需要在sample-project的站点描述符中添加对于sample-site-skin构件的引用。在站点描述符中使用如下的skin元素来引用皮肤:

Example 15.12. 在站点描述符中配置自定义站点皮肤

<project name="Sample Project">
  ...
  <skin>
    <groupId>org.sonatype.mavenbook</groupId>
    <artifactId>sample-site-skin</artifactId>
  </skin>
  ...
</project>


你可以将Maven站点皮肤想象成一个站点依赖。站点皮肤以构件的形式通过groupId和artifactId被引用。使用站点皮肤允许你在一个单独项目中统一站点定制,并且使得重用自定义CSS和站点模板,像插件重用构建逻辑一样简单。