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
$ sudo yum install gcc-c++ make
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