blob: d3ef7ba2f544f6aaac954adffbc66c03cf802700 [file] [log] [blame] [view]
zhangkun8365858d52015-03-30 10:51:13 -07001# Build scripts that publish pre-compiled protoc artifacts
2``protoc`` is the compiler for ``.proto`` files. It generates language bindings
3for the messages and/or RPC services from ``.proto`` files.
4
5Because ``protoc`` is a native executable, the scripts under this directory
6build and publish a ``protoc`` executable (a.k.a. artifact) to Maven
zhangkun839f4d9c62015-03-30 10:57:00 -07007repositories. The artifact can be used by build automation tools so that users
8would not need to compile and install ``protoc`` for their systems.
9
10## Versioning
11The version of the ``protoc`` artifact must be the same as the version of the
12Protobuf project.
zhangkun8365858d52015-03-30 10:51:13 -070013
14## Artifact name
15The name of a published ``protoc`` artifact is in the following format:
16``protoc-<version>-<os>-<arch>.exe``, e.g., ``protoc-3.0.0-alpha-3-windows-x86_64.exe``.
17
zhangkun83f162ee52015-03-30 11:02:02 -070018## System requirement
19These scripts only work under Unix-like environments, e.g., Linux, MacOSX, and
20Cygwin or MinGW for Windows. Please see ``README.md`` of the Protobuf project
21for how to set up the build environment.
22
zhangkun8365858d52015-03-30 10:51:13 -070023## To install artifacts locally
24The following command will install the ``protoc`` artifact to your local Maven repository.
25```
26$ ./gradlew install
27```
28
29## To push artifacts to Maven Central
30Before you can upload artifacts to Maven Central repository, you must have [set
31up your account with OSSRH](http://central.sonatype.org/pages/ossrh-guide.html),
32and have [generated a PGP key](http://gradle.org/docs/current/userguide/signing_plugin.html)
33for siging. You need to put your account information and PGP key information
34in ``$HOME/.gradle/gradle.properties``, e.g.:
35```
36signing.keyId=24875D73
37signing.password=secret
38signing.secretKeyRingFile=/Users/me/.gnupg/secring.gpg
39
40ossrhUsername=your-jira-id
41ossrhPassword=your-jira-password
42```
43
44Use the following command to upload artifacts:
45```
46$ ./gradlew uploadArchives
47```
48