对于Maven 2来说,站点生成的逻辑是Maven核心的一部分。鉴于灵活性和可扩展性考虑,在Maven 3中,这部分逻辑已从核心中移除。由于此设计的变动,Maven 3用户必须使用3.x版本的maven-site-plugin。例如:
Maven 2用户则应该使用maven-site-plugin最新的2.x版本。例如:
配置了正确版本的maven-site-plugin之后,在项目下运行mvn site就能直接生成一个最简单的站点,用户可以看到如下方代码所示的命令行输出。
待Maven运行完毕后,可以在项目的target/site/目录下找到Maven生成的站点文件,包括dependencies.html、dependency-convergence.html、index.html等文件和css、images文件夹。读者能够从这些文件及文件夹的名字中猜到其中的内容:css和images文件夹是用来存放站点相关的图片和css文件的,其他html文件基本对应了一项项目信息,如dependencies.html包含了项目依赖信息,license.html包含了项目许可证信息。index.html则是站点的主页面,用浏览器打开就能看到图15-1所示的页面。
从图15-1中可以看到,左边导航栏的下方包含了各类项目信息的链接,包括持续集成、依赖、问题追踪、邮件列表、团队、源码库等。
如果这是一个聚合项目,导航栏的上方还会包含子模块的链接,但是如果单击这些链接,将无法转到子模块的项目页面。这是由于多模块Maven项目本身的目录结构导致的。如果将站点发布到服务器上,该问题会自然消失。如果想在本地查看结构正确的站点,则可以maven-site-plugin的stage目标,将站点预发布至某个本地临时目录下。例如:
图15-1 最简单的Maven站点
上述命令表示生成项目站点,并预发布至D:/tmp目录。读者可以到该目录下找到项目站点的html文件,父子模块之间的链接也是可用的。
回顾7.2.4节,我们知道site生命周期有四个阶段,它们分别为pre-site、site、post-site和site-deploy。其中,pre-site和post-site默认没有绑定任何插件目标,可以说它们是预留给用户做一些站点生成之前及之后的处理的;site阶段绑定到了maven-site-plugin的site目标,该目标负责生成项目站点,因此之前使用简单的mvn site命令就能直接生成项目站点;site-deploy目标绑定了maven-site-plugin的deploy目标,该目标负责将站点部署至远程服务器。本章稍后会详细解释自动化站点部署。