| = Deploy Gerrit Artifacts | 
 |  | 
 | [[deploy-configuration-setting-maven-central]] | 
 | == Deploy Configuration settings for Maven Central | 
 |  | 
 | Some Gerrit artifacts (e.g. the Gerrit WAR file, the Gerrit Plugin API | 
 | and the Gerrit Extension API) are published on Maven Central in the | 
 | `com.google.gerrit` repository. | 
 |  | 
 | To be able to publish artifacts to Maven Central some preparations must | 
 | be done: | 
 |  | 
 | * Create a Sonatype account as described in the | 
 | link:https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide#SonatypeOSSMavenRepositoryUsageGuide-2.Signup[ | 
 | Sonatype OSS Maven Repository Usage Guide]. | 
 | + | 
 | Sonatype is the company that runs Maven Central and you need a Sonatype | 
 | account for uploading artifacts to Maven Central. | 
 |  | 
 | * Configure your Sonatype user and password in `~/.m2/settings.xml`: | 
 | + | 
 | ---- | 
 | <server> | 
 |   <id>sonatype-nexus-staging</id> | 
 |   <username>USER</username> | 
 |   <password>PASSWORD</password> | 
 | </server> | 
 | ---- | 
 |  | 
 | * Request permissions to upload artifacts to the `com.google.gerrit` | 
 | repository on Maven Central: | 
 | + | 
 | Ask for this permission by adding a comment on the | 
 | link:https://issues.sonatype.org/browse/OSSRH-7392[OSSRH-7392] Jira | 
 | ticket at Sonatype. | 
 | + | 
 | The request needs to be approved by someone who already has this | 
 | permission by commenting on the same issue. | 
 |  | 
 | * Generate and publish a PGP key | 
 | + | 
 | Generate and publish a PGP key as described in | 
 | link:http://central.sonatype.org/pages/working-with-pgp-signatures.html[ | 
 | Working with PGP Signatures]. | 
 | + | 
 | Please be aware that after publishing your public key it may take a | 
 | while until it is visible to the Sonatype server. | 
 | + | 
 | The PGP key is needed to be able to sign the artifacts before the | 
 | upload to Maven Central. | 
 | + | 
 | The PGP passphrase can be put in `~/.m2/settings.xml`: | 
 | + | 
 | ---- | 
 | <settings> | 
 |   <profiles> | 
 |     <profile> | 
 |       <id>gpg</id> | 
 |       <properties> | 
 |         <gpg.executable>gpg2</gpg.executable> | 
 |         <gpg.passphrase>mypassphrase</gpg.passphrase> | 
 |       </properties> | 
 |     </profile> | 
 |   </profiles> | 
 |   <activeProfiles> | 
 |     <activeProfile>gpg</activeProfile> | 
 |   </activeProfiles> | 
 | </settings> | 
 | ---- | 
 | + | 
 | It can also be included in the key chain on OS X. | 
 |  | 
 | [[deploy-configuration-settings-xml]] | 
 | == Deploy Configuration in Maven `settings.xml` | 
 |  | 
 | Gerrit Subproject Artifacts are stored on | 
 | link:https://developers.google.com/storage/[Google Cloud Storage]. | 
 | Via the link:https://code.google.com/apis/console/?noredirect[API Console] the | 
 | Gerrit maintainers have access to the `Gerrit Code Review` project. | 
 | This projects host several buckets for storing Gerrit artifacts: | 
 |  | 
 | * `gerrit-api`: | 
 | + | 
 | Bucket to store the Gerrit Extension API Jar and the Gerrit Plugin API | 
 | Jar. | 
 |  | 
 | * `gerrit-maven`: | 
 | + | 
 | Bucket to store Gerrit Subproject Artifacts (e.g. `gwtjsonrpc` etc.). | 
 |  | 
 | To upload artifacts to a bucket the user must authenticate with a | 
 | username and password. The username and password need to be retrieved | 
 | from the link:https://code.google.com/apis/console/?noredirect[API Console]: | 
 |  | 
 | * Go to the `Gerrit Code Review` project | 
 | * In the menu on the left select `Google Cloud Storage` > | 
 | `Interoperable Access` | 
 | * Use the `Access Key` as username | 
 | * Click under `Secret` on the `Show` button to find the password | 
 |  | 
 | To make the username and password known to Maven, they must be | 
 | configured in the `~/.m2/settings.xml` file. | 
 |  | 
 | ---- | 
 |   <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" | 
 |             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 
 |             xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> | 
 |     <servers> | 
 |       <server> | 
 |         <id>gerrit-api-repository</id> | 
 |         <username>GOOG..EXAMPLE.....EXAMPLE</username> | 
 |         <password>EXAMPLE..EXAMPLE..EXAMPLE</password> | 
 |       </server> | 
 |       <server> | 
 |         <id>gerrit-maven-repository</id> | 
 |         <username>GOOG..EXAMPLE.....EXAMPLE</username> | 
 |         <password>EXAMPLE..EXAMPLE..EXAMPLE</password> | 
 |       </server> | 
 |       <server> | 
 |         <id>gerrit-plugins-repository</id> | 
 |         <username>GOOG..EXAMPLE.....EXAMPLE</username> | 
 |         <password>EXAMPLE..EXAMPLE..EXAMPLE</password> | 
 |       </server> | 
 |     </servers> | 
 |   </settings> | 
 | ---- | 
 |  | 
 | [[deploy-configuration-subprojects]] | 
 | === Gerrit Subprojects | 
 |  | 
 | * You will need to have the following in the `pom.xml` to make it | 
 | deployable to the `gerrit-maven` storage bucket: | 
 |  | 
 | ---- | 
 |   <distributionManagement> | 
 |     <repository> | 
 |       <id>gerrit-maven-repository</id> | 
 |       <name>Gerrit Maven Repository</name> | 
 |       <url>gs://gerrit-maven</url> | 
 |       <uniqueVersion>true</uniqueVersion> | 
 |     </repository> | 
 |   </distributionManagement> | 
 | ---- | 
 |  | 
 |  | 
 | * Add this to the `pom.xml` to enable the wagon provider: | 
 |  | 
 | ---- | 
 |   <build> | 
 |     <extensions> | 
 |       <extension> | 
 |         <groupId>com.googlesource.gerrit</groupId> | 
 |         <artifactId>gs-maven-wagon</artifactId> | 
 |         <version>3.3</version> | 
 |       </extension> | 
 |     </extensions> | 
 |   </build> | 
 | ---- | 
 |  | 
 |  | 
 | GERRIT | 
 | ------ | 
 | Part of link:index.html[Gerrit Code Review] | 
 |  | 
 | SEARCHBOX | 
 | --------- |