gerrit/Documentation/dev-build-plugins.txt
David Pursehouse d5f3ca59d7 Update build/release documentation with new API/WAR commands
Change Ia246000f8 introduced new scripts to build and deploy
the API and WAR, but some documentation updates were missed.

Bug: Issue 4479
Change-Id: If5d4ce2a351463e9ddf88d3765b59955ce23ce54
2016-09-01 19:46:35 +09:00

92 lines
1.9 KiB
Plaintext

= Gerrit Code Review - Building plugins
From build process perspective there are three types of plugins:
* Maven driven
* Buck in tree driven
* Buck standalone driven
These types can be combined: if both files in plugin's root directory exist:
* `BUCK`
* `pom.xml`
the plugin can be built with both Buck and Maven.
== Maven driven build
If plugin contains `pom.xml` file, it can be built with Maven as usually:
----
mvn clean package
----
Exceptions from the rule above:
=== Exception 1:
Plugin's `pom.xml` references snapshot version of plugin API:
`2.8-SNAPSHOT`. In this case there are two possibilities:
* switch to release API. Change plugin API version in `pom.xml` from
`2.8-SNAPSHOT` to `2.8.1` and repeat step 1 above.
* build and install `SNAPSHOT` version of plugin API in local Maven repository:
----
./tools/maven/api.sh install
----
=== Exception 2:
Plugin's `pom.xml` references other own or foreign (unpublished) libraries or
even other Gerrit plugins. These libraries and/or plugins must be built and
installed in local Maven repository. Clone the related projects and issue
----
mvn install
----
Repeat step 1. above.
== Buck in tree driven
The fact that plugin contains `BUCK` file doesn't mean that building this
plugin from the plugin directory works. For now it doesn't. Buck in tree driven
means it can only be built from within Gerrit tree. Clone or link the plugin
into gerrit/plugins directory:
----
cd gerrit
buck build plugins/<plugin-name>:<plugin-name>
----
The output can be normally found in the following directory:
----
buck-out/gen/plugins/<plugin-name>/<plugin-name>.jar
----
Some plugins describe their build process in `src/main/resources/Documentation/build.md`
file. It may worth checking.
== Buck standalone driven
Only few plugins support that mode for now:
----
cd reviewers
buck build plugin
----
GERRIT
------
Part of link:index.html[Gerrit Code Review]
SEARCHBOX
---------