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
		
			
				
	
	
		
			92 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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
 | 
						|
---------
 |