项目中要使用代码审核功能,所以使用了android的代码审核工具Gerrit,该工具的安装不算太难,但是也遇到了一些令我困惑很久的问题,下面将该Gerrit搭建的过程总结一下。
1. 安装与入门
如果是第一次接触Gerrit,最好的入门资料当然是《Git权威指南》一书的第32章(http://download.csdn.net/detail/lewsn2008/6429861)。该文章对Gerrit的原理及安装配置做了很全面的介绍,参考该文章基本上能搭建一个正常使用的Gerrit了。
2. 其他资料
http://www.mediawiki.org/wiki/Gerrit是使用Gerrit非常好的实例,网页中介绍到:MediaWiki项目就是使用Gerrit进行代码审核的,该网站将MediaWiki项目使用Gerrit的详细过程和配置进行了介绍。而且不仅是对Gerrit进行介绍,而是一系列的工具:Gerrit+zuul+Jenkins。Jenkins进行自动测试与构建,zuul是联系Gerrit和Jenkins的工具。该文章对这一系列的工具进行了详细的介绍,因此该网站是非常好的实战参考资料。
3. 关于文档
刚开始使用Gerrit时找到它的官网http://code.google.com/p/gerrit/,原来是google code上的项目地址,没有详细的文档。后来发现Gerrit的文档原来就在搭建并运行Gerrit后的页面上,如下图所示:
4. 遇到的问题(邮件功能配置)
Gerrit的安装与配置是比较好理解的,但是其中有一项困扰了我很长时间:邮件服务器的配置项(即:gerrit.conf中的[sendmail]配置项)。《Git权威指南》及网上的文章中都没有详细介绍,都是说采用默认配置:localhost。但是Gerrit运行起来后,在设置用户的email时,邮件根本发布出去。不过现在想想,发不出去就对了!因为Gerrit没有集成邮件服务器,也就没有发送邮件的能力,所以这里需要配置一个邮件服务器。如果设置为localhost的话,需要在本地搭建一个邮件服务器,例如利用postfix,我测试过用postfix搭建本地服务器,但是由于对postfix不熟悉,没有完全成功,有的邮箱可以收到邮件,有的会被阻止。
后来在网上找到了解决方法,其实设置一个邮件服务商的服务器就行(例如gmail)。可以参考文章:http://www.cnblogs.com/Jerryshome/archive/2012/04/19/2457170.html 和 http://blog.csdn.net/csfreebird/article/details/7583911。配置的实例如下:
[sendemail]
enable = true
smtpServer = smtp.gmail.com
smtpServerPort = 465
smtpEncryption = ssl
smtpUser = your_account@gmail..com
smtpPass = your_password
sslVerify = false
from = Code Review < your_account@gmail..com>