Gerrit,一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。
基本环境:CentOS6.8+MySQL-5.6.27+Java(1.7以上版本)+mail.rc(邮件发送)
一、 准备MySQL数据库
mysql> create database reviewdb;
mysql> CREATE DATABASE IF NOT EXISTS reviewdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> grant all on reviewdb.* to 'gerrit'@'localhost' identified by 'gerrit';
mysql> flush privileges;
二、 下载安装包并安装
Gerrit安装包为war包,下载完成后可以使用
java -jar gerrit-2.12.war init -d /var/opt/review_site
来启动命令行交互安装动作。命令行交互的安装过程如下:
Create '/var/opt/review-site' [Y/n]?
*** Git Repositories
***
Location of Git repositories [git]: /home/git/repositories
*** SQL Database
***
Database server type [H2/?]:
*** User Authentication
***
Authentication method [OPENID/?]: http
Get username from custom HTTP header [y/N]? :
SSO logout URL :
*** Email Delivery
***
SMTP server hostname [localhost]:
SMTP server port [(default)]:
SMTP encryption [NONE/?]:
SMTP username [gerrit2]:
jushi@taobao.com's password :
confirm password :
*** Container Process
***
Run as [gerrit2]:
Java runtime [/usr/lib/jvm/java-6-sun-1.6.0.24/jre]:
Copy gerrit.war to /home/gerrit2/review-site/bin/gerrit.war [Y/n]?
Copying gerrit.war to /home/gerrit2/review-site/bin/gerrit.war
*** SSH Daemon
***
Listen on address [*]:
Listen on port [29418]:
Gerrit Code Review is not shipped with Bouncy Castle Crypto v144
If available, Gerrit can take advantage of features
in the library, but will also function without it.
Download and install it now [Y/n]?
Downloading http://www.bouncycastle.org/download/bcprov-jdk16-144.jar ... OK
Checksum bcprov-jdk16-144.jar OK
Generating SSH host key ... rsa... dsa... done
*** HTTP Daemon
***
Behind reverse proxy [y/N]? y
Proxy uses SSL (https://) [y/N]?
Subdirectory on proxy server [/]:
Listen on address [*]:
Listen on port [8081]:
Initialized /home/gerrit2/review-site
Executing /home/gerrit2/review-site/bin/gerrit.sh start
Starting Gerrit Code Review: OK
在上面的过程中,大部分只需要回车选择默认就可以了,需要注意的地方有
1、指定git库路径
2、指定数据库类型,默认为H2数据库,但是我们选择使用MySQL。选择MySQL之后需要指定localhost,用户名,密码等等
3、定义系统邮件功能,需要指定发件服务器,端口,发件用户和密码
4、指定验证方式,必须选择http方式,便于后面使用apache代理
安装完成后我们可以查看Gerrit的配置文件,基本上上面的步骤都是在定义配置文件
vim /var/opt/review_site/etc/gerrit.conf
[gerrit]
basePath = /data/git //指定git库路径
canonicalWebUrl = http://192.168.1.131:8081/
[database]
type = mysql //指定数据库
hostname = localhost
database = reviewdb
username = gerrit2
[index]
type = LUCENE
[auth] //指定验证方式
type = HTTP
[receive]
enableSignedPush = false
[sendemail] //指定邮件服务器
smtpServer = mail.btte.net
smtpServerPort = 25
smtpUser = autoreport@btte.net
[container]
user = root
javaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-1.b14.el6.x86_64/jre
[sshd] //默认的ssh端口
listenAddress = *:29418
[httpd]
listenUrl = proxy-http://*:8081/
[cache]
directory = cache
三、 配置Apache代理
1 创建访问用户及相应的密码
htpasswd -c /var/opt/review_site/data/passwords admin
输入两次密码即可
2 配置http文件,添加以下内容
<VirtualHost *:80>
ProxyRequests Off
ProxyVia Off
AllowEncodedSlashes On
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
AuthUserFile /var/opt/review_site/data/passwords
</Location>
ProxyPass / http://127.0.0.1:8081/ nocanon
</VirtualHost>
实际搭建过程中,踩了太多的坑,都是靠着谷歌大大和百度大大一个一个解决掉,不容易啊~
而且,Gerrit的使用对开发来说不是很友好,提交代码的时候经常出现代码冲突,影响开发进度,需要注意下。