博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
grpc-gradle与grpc流程完美整合(3)
阅读量:4290 次
发布时间:2019-05-27

本文共 1482 字,大约阅读时间需要 4 分钟。

按照之前文章的方法来自动自动生成proto的代码,然后手动从build复制到src代码中去,当执行gradle build编译的时候会抛错提示类重复,因为执行gradle build,这个命令依赖于gradle generateProto命令,也就是会生成两次相同的类文件,所以会抛出类重复。

修改build.gradle中的protobuf plugin的相关配置来自动将proto生成的代码放入到指定目录,达到完美整合。

protobuf {    protoc {        artifact = "com.google.protobuf:protoc:3.2.0"    }    plugins {        grpc {            artifact = 'io.grpc:protoc-gen-grpc-java:1.4.0'        }    }    generatedFilesBaseDir = "src"    generateProtoTasks {        all()*.plugins {            grpc {                outputSubDir = "java"            }        }    }}

generatedFilesBaseDir将生成的代码放入到指定的目录,outputSubDir可以看做generatedFilesBaseDir下的指定目录。因为这两个参数都有默认目录路径,可以尝试修改之后再生成文件查看之间的差别。

分析一下官方所描述的:

Change where the generated files are

By default generated Java files are under generatedFilesBaseDir/ sourceSet/ builtinPluginName,where generatedFilesBaseDir is $buildDir/generated/source/proto by default, and is configurable. E.g.,

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

The subdirectory name, which is by default $builtinPluginName, can also be changed by setting the outputSubDir property in the builtins or plugins block of a task configuration within generateProtoTasks block (see previous section). E.g.,

{ task ->  task.plugins {    grpc {      // Write the generated files under      // "$generatedFilesBaseDir/$sourceSet/grpcjava"      outputSubDir = 'grpcjava'    }  }}

默认配置指定了生成文件的默认位置。按我们需求修改好之后,重新执行gradle clean generateProto会看到自动生成的文件到我们想要的目录了。

参考:

转载地址:http://pmrgi.baihongyu.com/

你可能感兴趣的文章
大型高并发与高可用缓存架构总结
查看>>
javascript设计模式-工厂模式(4)
查看>>
javascript设计模式-组合模式(6)
查看>>
javascript设计模式-门面模式(7)
查看>>
javascript设计模式-享元模式(10)
查看>>
javascript设计模式-代理模式(11)
查看>>
Executor相关源码分析
查看>>
react之setState解析
查看>>
elasticsearch7.3版本已经不需要额外安装中文分词插件了
查看>>
【重大好消息】elasticsearch 7.3版本已经可以免费使用x-pack就可以设置账号和密码了,让你的数据不再裸奔
查看>>
解决使用logstash中jdbc导入mysql中的数据到elasticsearch中tinyint类型被转成布尔型的问题的方法
查看>>
elasticsearch7.3版本环境搭建(一)elasticsearch安装和配置
查看>>
SEO基本功:站内优化的一些基本手段
查看>>
centos6系列和7系列如何对外开放80,3306端口号或者其他端口号
查看>>
为什么您宁愿吃生活的苦,也不愿吃学习的苦?为什么你不愿意去学习呢
查看>>
解决elasticsearch7.3版本安装过程中遇到的包括内存不够、线程不够等问题
查看>>
日常项目测试用例检查点(来自一线测试人员的吐血总结)
查看>>
网站建设之域名注册和域名备案
查看>>
解决bootstrap时间输入框总被浏览器记住的记录遮挡住的问题
查看>>
git将一个分支完全覆盖另外一个分支如:dev分支代码完全覆盖某一个开发分支
查看>>