接着,为定制皮肤编写自定义的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和站点模板,像插件重用构建逻辑一样简单。