使用gradle生成protobuf


之前介绍的都是使用protoc工具进行protobuf代码的生成,下面我们看下如何使用gradle插件进行proto文件的编译和代码生成。

protobuf-gradle-plugin

在google的github下有protobuf-gradle-plugin这个项目,这是用于生成protobuf的gradle官方插件(这个插件需要Gradle2.12版本以上),在gradle的build文件加上对应插件:

apply plugin: 'com.google.protobuf' buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.1' } } 

上面的插件将会添加extractIncludeProto(获得依赖proto),extractProto(获得编译的proto文件),generateProto(编译)任务,同时会将他们都配置进build,这样系统构建时都会重新运行这些任务。

自定义配置

设置生成的目标地址

protobuf { generatedFilesBaseDir = "$projectDir/src/" } 

该配置设置protoc生成代码的目标目录,生成的具体目录还会追加package的对应目录

设置proto文件目录

sourceSets {
  main {
    proto {
      // 除了默认的'src/main/proto'目录新增proto文件的方法 srcDir 'src/main/protobuf' include '**/*.protodevel' } java{ ... } } } 

设置使用protoc的具体版本

默认使用系统path下设置的protoc,这里还可以定义特定的protoc程序

protobuf {
  protoc {
    path = '/usr/local/bin/protoc' } } //或者 protobuf { protoc { //从仓库下载 artifact = 'com.google.protobuf:protoc:3.0.0' } }

https://www.cnblogs.com/resentment/p/6715124.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM