grpc-gradle与grpc流程完美整合(3)
2017-07-24 23:54
211 查看
按照之前文章的方法来自动自动生成proto的代码,然后手动从build复制到src代码中去,当执行gradle build编译的时候会抛错提示类重复,因为执行gradle build,这个命令依赖于gradle generateProto命令,也就是会生成两次相同的类文件,所以会抛出类重复。
修改build.gradle中的protobuf plugin的相关配置来自动将proto生成的代码放入到指定目录,达到完美整合。
generatedFilesBaseDir将生成的代码放入到指定的目录,outputSubDir可以看做generatedFilesBaseDir下的指定目录。因为这两个参数都有默认目录路径,可以尝试修改之后再生成文件查看之间的差别。
分析一下官方所描述的:
Change where the generated files are
By default generated Java files are under generatedFilesBaseDir/sourceSet/builtinPluginName,wheregeneratedFilesBaseDir is $buildDir/generated/source/proto by default, and is configurable. E.g.,
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.,
默认配置指定了生成文件的默认位置。按我们需求修改好之后,重新执行gradle clean generateProto会看到自动生成的文件到我们想要的目录了。
参考:
https://github.com/google/protobuf-gradle-plugin
https://stackoverflow.com/questions/32820728/simple-protobuf-compilation-with-gradle
修改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,wheregeneratedFilesBaseDir 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 { 4000 // Write the generated files under // "$generatedFilesBaseDir/$sourceSet/grpcjava" outputSubDir = 'grpcjava' } } }
默认配置指定了生成文件的默认位置。按我们需求修改好之后,重新执行gradle clean generateProto会看到自动生成的文件到我们想要的目录了。
参考:
https://github.com/google/protobuf-gradle-plugin
https://stackoverflow.com/questions/32820728/simple-protobuf-compilation-with-gradle
相关文章推荐
- gRPC的使用(一)之异步单项RPC的使用流程
- gRPC的使用(二)之异步服务器流RPC的使用流程
- springmvc+activiti 完美整合- 流程在线设计+代码生成器+UI快速开发库,提高一半的开发效率
- SSH2完美整合流程
- grpc-整合gradle与代码生成
- springmvc+activiti 完美整合- 流程在线设计+代码生成器+UI快速开发库,提高一半的开发效率
- Spring Boot和Kotlin的无缝整合与完美交融
- Ubuntu12下MyEclipse10里整合Spring3.0.5和Struts2.3.8例子及流程
- 整合Spring3.0.5和Hibernate3.3例子及流程(中文也OK)
- springboot中整合activiti流程设计器时遇到访问项目需要输入tomcat用户名和密码的问题
- ecshop和discuz整合中问题完美解决方法
- SpringBoot(2.0.4.RELEASE)+Elasticsearch(6.2.4)+Gradle简单整合
- blazeds, spring3整合实现RPC服务和消息服务
- Ext与.NET超完美整合 .NET开发者的超级优势
- SpringMVC与Activiti网页流程设计器整合(一)
- SPRING 整合IBATIS或者hibernate等持久数据层流程与实现
- Zend Framework 与Smarty 的完美整合!
- grpc-gateway:grpc转换为http协议对外提供服务
- Struts2.0+Springframework2.5+ibatis2.3完美整合用户登录及增删改查演示示例 连载中.(三)
- 【整合篇】JBPM4.4业务与流程的整合