Gradle protoc 插件找不到默认的 google proto 文件
Posted
技术标签:
【中文标题】Gradle protoc 插件找不到默认的 google proto 文件【英文标题】:Gradle protoc plugin doesn't find default google proto file 【发布时间】:2017-08-17 18:05:35 【问题描述】:我的 proto 文件使用默认的 google 协议缓冲区类型,例如结构和时间戳。
使用默认的 gradle protoc 集成,gradle 输出错误,因为它无法解析导入:
google/protobuf/struct.proto:找不到文件。
google/protobuf/timestamp.proto:找不到文件。
替换默认的 gradle protoc 块
protoc
artifact = 'com.google.protobuf:protoc:3.3.0'
其中一个指定 protoc 的位置
protoc
path = '/usr/local/bin/protoc'
解决了这个问题,但它不可移植。
是否有任何 jar 依赖项或其他可移植解决方案可以使默认的 gradle protoc 定义正常工作?
【问题讨论】:
【参考方案1】:添加以下依赖可修复错误:
编译'com.google.protobuf:protobuf-java:3.4.0'
依赖项在编译后的 protobuf 库中提供默认的 google protofiles。
【讨论】:
是的,这确实解决了问题。作为参考,plugin documentation 表示:Protos in dependencies (e.g. upstream jars) can be put in either in the compile configuration or the protobuf configuration.
以上是关于Gradle protoc 插件找不到默认的 google proto 文件的主要内容,如果未能解决你的问题,请参考以下文章
在父 build.gradle 中找不到 ID 为 spring-boot 的插件
protoc编译器使用 grpc 插件编译 .proto 文件
使用 Palantir Gradle 插件构建 Docker 容器时找不到 .jar 文件
Gradle eclipse 插件:在存储库容器上找不到参数 [] 的方法 jcenter()。有关详细信息,请参阅错误日志