环境依赖jdk11
安装jdk11:
下载: wget https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz
解压: tar zxvf openjdk-11+28_linux-x64_bin.tar.gz
sudo update-alternatives --install /usr/bin/java java /home/jenkins/local/jdk-11/bin/java 2
sudo update-alternatives --config java,选择11对应的序号
查看版本号:java -version
Mac环境
/usr/libexec/java_home -V
安装Gerrit3.4.1
官网地址:Gerrit Code Review | Gerrit Code Review
创建目录: mkdir /demo && cd /demo/
下载: wget https://gerrit-releases.storage.googleapis.com/gerrit-3.4.1.war
执行命令:java -jar gerrit-3.4.1.war init -d gerrit_site
安装时候注意 ,是否安装插件选 Y
- Installing plugins 安装插件时候选择 Y
- http 端口注意修改(默认可不更改)
- http url注意修改(访问地址)
查看配置文件: gerrit_site/etc/gerrit.config
[gerrit]
basePath = git
canonicalWebUrl = http://119.******1:9080/
serverId = 4c1b3131-9bc2-48d8-90aa-1f647b925f8e
[container]
javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
user = root
javaHome = /opt/jdk-11
[index]
type = lucene
[auth]
type = LDAP
gitBasicAuthPolicy = HTTP
[ldap]
server = ldap://cas.demo.net
username = cn=admin,dc=ldap,dc=example,dc=com
accountBase = dc=ldap,dc=example,dc=com
groupBase = dc=ldap,dc=example,dc=com
[receive]
enableSignedPush = true
[sendemail]
smtpServer = localhost
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = http://*:9080/
[cache]
directory = cache
暂停:./gerrit_site/bin/gerrit.sh stop
启动:./gerrit_site/bin/gerrit.sh start
浏览器访问:
安装its插件,目前插件列表没有its插件。
its插件下载地址:https://gerrit.googlesource.com/plugins/its-jira/
To build Gerrit Plugins from source, you need:
A Linux or macOS system (Windows is not supported at this time)
zip, unzip, wget
$yum install zip -y
$ yum install unzip -y
$ yum install wget -y
$ yum install git -y
Python 2 or 3
This is installed in each RHEL 7 and Ubunutu server by defaul.
Node.js
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
OR
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum -y install nodejs
Bazel
## RHEL/CentOS 7 64-Bit ##
$ wget https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-7/vbatts-bazel-epel-7.repo
$ cp vbatts-bazel-epel-7.repo /etc/yum.repos.d/
$ yum install -y bazel
How to Installing Bazel on Ubuntu?
https://docs.bazel.build/versions/master/install-ubuntu.html
Maven
$ cd /opt
$ wget http://www-us.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip
$ unzip apache-maven-3.5.4-bin.zip
$ mv apache-maven-3.5.4 maven
$ export PATH=$PATH:/op/maven/bin
gcc
[code language=”text”]$ sudo yum install gcc-c++ make[/code]
Now, Bazel in tree driven means it can only be built from within Gerrit tree. Clone or link the plugin into gerrit/plugins directory:
# First become a non-root user
A JDK for Java 8
$ cd
$ wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
$ tar -xvf jdk-8u181-linux-x64.tar.gz
$ export JAVA_HOME=/home/ec2-user/jdk1.8.0_181
$ java -version
Follow for Gerrit.war
$ git clone --recursive https://gerrit.googlesource.com/gerrit
$ cd gerrit
$ bazel build release
Follow for plugins such as its-jira
$ cd plugins
$ git clone https://gerrit.googlesource.com/plugins/its-jira
$ git clone https://gerrit.googlesource.com/plugins/its-base
$ bazel build plugins/its-jira
The output can be normally found in the following directory:
bazel-genfiles/plugins/its-jira/its-jira.jar
# Some plugins describe their build process in src/main/resources/Documentation/build.md file. It may worth checking.
# Some plugins cane be build using maven as well
Reference
https://gerrit-review.googlesource.com/Documentation/dev-bazel.html
https://gerrit.googlesource.com/gerrit/
https://gerrit-review.googlesource.com/Documentation/cmd-plugin-install.html
https://gerrit-review.googlesource.com/Documentation/dev-build-plugins.html
Making Gerrit play nice with JIRA
提交代码报错:
file is empty: .git/COMMIT_EDITMSG
解决办法: .git/hook/commit-msg
#!/bin/sh
# From Gerrit Code Review 3.1.4
#
# Part of Gerrit Code Review (https://www.gerritcodereview.com/)
#
# Copyright (C) 2009 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# avoid [[ which is not POSIX sh.
if test "$#" != 1 ; then
echo "$0 requires an argument."
exit 1
fi
if test ! -f "$1" ; then
echo "file does not exist: $1"
exit 1
fi
# Do not create a change id if requested
if test "false" = "`git config --bool --get gerrit.createChangeId`" ; then
exit 0
fi
# $RANDOM will be undefined if not using bash, so don't use set -u
random=$( (whoami ; hostname ; date; cat $1 ; echo $RANDOM) | git hash-object --stdin)
dest="$1.tmp.${random}"
trap 'rm -f "${dest}"' EXIT
if ! git stripspace --strip-comments < "$1" > "${dest}" ; then
echo "cannot strip comments from $1"
exit 1
fi
if test ! -s "${dest}" ; then
echo "file is empty: $1"
# exit 1
fi
# Avoid the --in-place option which only appeared in Git 2.8
# Avoid the --if-exists option which only appeared in Git 2.15
if ! git -c trailer.ifexists=doNothing interpret-trailers \
--trailer "Change-Id: I${random}" < "$1" > "${dest}" ; then
echo "cannot insert change-id line in $1"
exit 1
fi
if ! mv "${dest}" "$1" ; then
echo "cannot mv ${dest} to $1"
exit 1
fi
清除缓存:ssh -p 29418 [email protected] gerrit flush-caches --all
commentlink:https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#commentlink
简单使用:
#创建文件
echo "abc" > 1.txt
#add
git add 1.txt
# commit
git commit -m "#1111 1.txt"
#更新
git pull origin master
#提交
git push origin HEAD:refs/for/master
功能介绍:
1、创建仓库:
2、查看提交
3、code review
4、submit