|
|
@ -17,9 +17,10 @@ rather build without Maven, see below. |
|
|
|
|
|
|
|
|
|
|
|
http://maven.apache.org/ |
|
|
|
http://maven.apache.org/ |
|
|
|
|
|
|
|
|
|
|
|
2) Build the C++ code, or obtain a binary distribution of protoc. If |
|
|
|
2) Build the C++ code, or obtain a binary distribution of protoc (see |
|
|
|
you install a binary distribution, make sure that it is the same |
|
|
|
the toplevel [README.md](../README.md)). If you install a binary |
|
|
|
version as this package. If in doubt, run: |
|
|
|
distribution, make sure that it is the same version as this package. |
|
|
|
|
|
|
|
If in doubt, run: |
|
|
|
|
|
|
|
|
|
|
|
$ protoc --version |
|
|
|
$ protoc --version |
|
|
|
|
|
|
|
|
|
|
@ -44,36 +45,25 @@ rather build without Maven, see below. |
|
|
|
|
|
|
|
|
|
|
|
The .jar will be placed in the "target" directory. |
|
|
|
The .jar will be placed in the "target" directory. |
|
|
|
|
|
|
|
|
|
|
|
Installation - 'Lite' Version - With Maven |
|
|
|
The above instructions will install 3 maven artifacts: |
|
|
|
========================================== |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Building the 'lite' version of the Java Protocol Buffers library is |
|
|
|
|
|
|
|
the same as building the full version, except that all commands are |
|
|
|
|
|
|
|
run using the 'lite' profile. (see |
|
|
|
|
|
|
|
http://maven.apache.org/guides/introduction/introduction-to-profiles.html) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E.g. to install the lite version of the jar, you would run: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ mvn install -P lite |
|
|
|
* protobuf-java: The core Java Protocol Buffers library. Most users only |
|
|
|
|
|
|
|
need this artifact. |
|
|
|
The resulting artifact has the 'lite' classifier. To reference it |
|
|
|
* protobuf-lite: The lite version of core Java Protobuf Buffers library. It |
|
|
|
for dependency resolution, you would specify it as: |
|
|
|
is a subset of the core library and is used together with |
|
|
|
|
|
|
|
the 'lite' code generator flag to reduce generated code size |
|
|
|
``` |
|
|
|
for mobile. |
|
|
|
<dependency> |
|
|
|
* protobuf-java-util: Utilities to work with protos. It contains JSON support |
|
|
|
<groupId>com.google.protobuf</groupId> |
|
|
|
as well as utilities to work with proto3 well-known |
|
|
|
<artifactId>protobuf-java</artifactId> |
|
|
|
types. |
|
|
|
<version>${version}</version> |
|
|
|
|
|
|
|
<classifier>lite</classifier> |
|
|
|
|
|
|
|
</dependency> |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Installation - Without Maven |
|
|
|
Installation - Without Maven |
|
|
|
============================ |
|
|
|
============================ |
|
|
|
|
|
|
|
|
|
|
|
If you would rather not install Maven to build the library, you may |
|
|
|
If you would rather not install Maven to build the library, you may |
|
|
|
follow these instructions instead. Note that these instructions skip |
|
|
|
follow these instructions instead. Note that these instructions skip |
|
|
|
running unit tests. |
|
|
|
running unit tests and only describes how to install the core protobuf |
|
|
|
|
|
|
|
library (without the util package). |
|
|
|
|
|
|
|
|
|
|
|
1) Build the C++ code, or obtain a binary distribution of protoc. If |
|
|
|
1) Build the C++ code, or obtain a binary distribution of protoc. If |
|
|
|
you install a binary distribution, make sure that it is the same |
|
|
|
you install a binary distribution, make sure that it is the same |
|
|
@ -86,15 +76,50 @@ running unit tests. |
|
|
|
|
|
|
|
|
|
|
|
2) Invoke protoc to build DescriptorProtos.java: |
|
|
|
2) Invoke protoc to build DescriptorProtos.java: |
|
|
|
|
|
|
|
|
|
|
|
$ protoc --java_out=src/main/java -I../src \ |
|
|
|
$ protoc --java_out=core/src/main/java -I../src \ |
|
|
|
../src/google/protobuf/descriptor.proto |
|
|
|
../src/google/protobuf/descriptor.proto |
|
|
|
|
|
|
|
|
|
|
|
3) Compile the code in src/main/java using whatever means you prefer. |
|
|
|
3) Compile the code in core/src/main/java using whatever means you prefer. |
|
|
|
|
|
|
|
|
|
|
|
4) Install the classes wherever you prefer. |
|
|
|
4) Install the classes wherever you prefer. |
|
|
|
|
|
|
|
|
|
|
|
Usage |
|
|
|
Compatibility Notice |
|
|
|
===== |
|
|
|
==================== |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Protobuf minor version releases are backwards-compatible. If your code |
|
|
|
|
|
|
|
can build/run against the old version, it's expected to build/run against |
|
|
|
|
|
|
|
the new version as well. Both binary compatibility and source compatbility |
|
|
|
|
|
|
|
are guaranteed for minor version releases if the user follows the guideline |
|
|
|
|
|
|
|
described in this section. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Protobuf major version releases may also be backwards-compatbile with the |
|
|
|
|
|
|
|
last release of the previous major version. See the release notice for more |
|
|
|
|
|
|
|
details. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* APIs marked with the @ExperimentalApi annotation are subject to change. They |
|
|
|
|
|
|
|
can be modified in any way, or even removed, at any time. Don't use them if |
|
|
|
|
|
|
|
compatiblity is needed. If your code is a library itself (i.e. it is used on |
|
|
|
|
|
|
|
the CLASSPATH of users outside your own control), you should not use |
|
|
|
|
|
|
|
experimental APIs, unless you repackage them (e.g. using ProGuard). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Deprecated non-experimental APIs will be removed two years after the release |
|
|
|
|
|
|
|
in which they are first deprecated. You must fix your references before this |
|
|
|
|
|
|
|
time. If you don't, any manner of breakage could result (you are not |
|
|
|
|
|
|
|
guaranteed a compilation error). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Protobuf message interfaces/classes are designed to be subclassed by protobuf |
|
|
|
|
|
|
|
generated code only. Do not subclass these message interfaces/classes |
|
|
|
|
|
|
|
yourself. We may add new methods to the message interfaces/classes which will |
|
|
|
|
|
|
|
break your own subclasses. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Don't use any method/class that is marked as "used by generated code only". |
|
|
|
|
|
|
|
Such methods/classes are subject to change. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Protobuf LITE runtime APIs are not stable yet. They are subject to change even |
|
|
|
|
|
|
|
in minor version releases. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation |
|
|
|
|
|
|
|
============= |
|
|
|
|
|
|
|
|
|
|
|
The complete documentation for Protocol Buffers is available via the |
|
|
|
The complete documentation for Protocol Buffers is available via the |
|
|
|
web at: |
|
|
|
web at: |
|
|
|