Bazel Build
===========

This plugin can be built with Bazel


Build standalone
----------------

To build all the example plugins, issue the following command:


  bazel build :all


The output for all the example plugins is created in


  bazel-genfiles/all.zip


To build a specific example plugin, issue one of the following commands:


  bazel build example-<example>

  OR

  cd example-<example> && bazel build example-<example>


If the build command is run from the top-level example directory,
the output for the example is created in


  bazel-genfiles/example-<example>/example-<example>.jar


If the build command is run from inside a specific example directory,
the output for the example is created in


  example-<example>/bazel-genfiles/example-<example>.jar



Maven Build
==========

Note that for compatibility reasons a Maven build is provided, but is considered
to be deprecated and will be removed in a future version of this plugin.

To build with Maven, change directory to the specific example plugin folder and
issue the command:


  mvn clean package


When building with Maven, the Gerrit Plugin API must be available.

How to build the Gerrit Plugin API is described in the Gerrit
documentation (../../../Documentation/dev-bazel.html#_extension_and_plugin_api_jar_files).
