A Leiningen plugin to compile Google Protocol Buffers to Java
This plugin provides seamless support for building projects that include .proto files. There
is no need to pre-download the protoc compiler. The plugin will manage the dependency for you
with cross-platform support. The plugin will work out of the box in Linux, MacOSX, and Windows
build environments.
Put [com.circleci/lein-protoc "0.6.0"] into the :plugins vector of your project.clj.
The following options can be configured in the project.clj:
:protoc-versionthe Protocol Buffers Compiler version to use. Defaults to"3.4.0".:proto-source-pathsvector of absolute paths or paths relative to the project root that contain the .proto files to be compiled. Defaults to["src/proto"]:proto-target-paththe absolute path or path relative to the project root where the sources should be generated. Defaults to${target-path}/generated-sources/protobuf:protoc-grpctrue (or empty map) to generate interfaces for gRPC service definitions with default settings. Defaults tofalse. Can optionally provide a map with the following configs::versionversion number for gRPC codegen. Defaults to"1.6.1".:target-pathabsolute path or path relative to the project root where the sources should be generated. Defaults to the:proto-target-path
:protoc-timeouttimeout value in seconds for the compilation process. Defaults to60:proto-source-depsvector of project dependencies to include proto files from. Can optionally include a prefix path with the dependency. Defaults to[]. Example:proto-source-deps [[foo.bar/lib "/resources/proto"] [zip/ping-lib].
The plugin hooks to the javac task so that sources will be generated prior to java compilation.
Alternatively, the sources can be generated independently with:
$ lein protoc
lein-protoc is pushed to clojars.
The following should be updated on the main branch if there are new releases:
project.clj- versionREADME.md- dependency coordinatesCHANGELOG.md- summary of changes
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.