本地试运行 Gerrit 工具

Gerrit 是一个免费、开源的 Code Review 工具软件,允许开发者通过 Web 界面审阅代码,使用 Git 作为底层的版本控制系统,支持私有化部署、权限控制,以及通过插件进行扩展, 由谷歌提供维护。

它本身是为管理 Android 代码而出现,最早是用 Python2.7 + Django(fork of Rietveld) 编写,在 2.0 版本之后改用 Java 来写,Gerrit 源代码使用的语言级别仍保留在 Java 11 上,但是,Gerrit 是针对 Java 17 构建和分发的,这是在生产中运行它的推荐 JVM 版本,前端使用 Ploymer Web UI。

Java 环境及软件包

需要在本地环境安装 Java11 以上的版本和 Bazel 软件包构建工具。

1)源码构建软件包
git clone --recurse-submodules https://gerrit.googlesource.com/gerrit

# 本地编译
cd gerrit && bazel build release

# 如果切换分支或者更新代码之后,运行下面的命令后再重新编译
git submodule update
git clean -ffd

编译成功后,在 ./bazel-bin 目录下可以看到二进制包: release.war

2)直接下载编译好的 war 软件包 | 查看 Release 版本
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.9.1.war

本地启动

指定测试站点的目录位置(环境变量)

export GERRIT_SITE=~/gerrit_testsite

进行站点初始化,并启动项目:

# --batch 默认的 gerrit 基础配置
# --dev 默认的 Auth 选项为 DEVELOPMENT_BECOME_ANY_ACCOUNT
# --install-all-plugins 可以安装所有插件
java -jar bazel-bin/release.war init --batch --dev -d $GERRIT_SITE

# 或者不初始化站点,直接启动:
java -jar bazel-bin/release.war daemon -d $GERRIT_SITE --console-log

在浏览器中访问:http://localhost:8080, 也可以修改默认端口号:

git config --file $GERRIT_SITE/etc/gerrit.config httpd.listenUrl \
	 'http://localhost:8081'

# Restart Gerrit, or Stop
$GERRIT_SITE/bin/gerrit.sh restart

延伸阅读: