在gRPC Java项目中导入文件

时间:2018-06-22 08:14:34

标签: gradle grpc-java google-smart-home

我正在尝试使用gRPC为Google Actions上的Smart Home模块实现报告状态。但是我无法为我的* .proto文件进行所有导入(如官方文档所述):https://developers.google.com/actions/smarthome/report-state
我该怎么办?
我的原型文件:

syntax = "proto3";

package google.home.graph.v1;

import "google/home/graph/v1/device.proto"; // --> file not found
...

build.gradle:

buildscript {
  repositories {
    mavenCentral()
    jcenter()
  }
  dependencies {
    classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.4.2.RELEASE'
    classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.3'
  }
}


group 'pro.company'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'com.google.protobuf'

protobuf {
protoc {
    artifact = "com.google.protobuf:protoc:3.5.1-1"
}
plugins {
    grpc {
        artifact = 'io.grpc:protoc-gen-grpc-java:1.12.0'
    }
}
generateProtoTasks {
    all()*.plugins {
        grpc {}
    }
  }
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
  mavenCentral()
  jcenter()
}

jar {
  baseName = 'test'
  version = ''
}

springBoot {
  mainClass = "pro.foreway.Application"
  executable = true
}

dependencies {
  compile 'org.springframework.boot:spring-boot-starter-web'

  compile 'io.grpc:grpc-netty:1.12.0'
  compile 'io.grpc:grpc-protobuf:1.12.0'
  compile 'io.grpc:grpc-stub:1.12.0'

  compile 'com.google.api.grpc:googleapis-common-protos:0.0.3'
}

structure

1 个答案:

答案 0 :(得分:0)

您所需的所有原型都已添加到googleapis repository中,因此您应该能够使用device.proto并将其放入。我们还添加了一些与查询和同步数据有关的新API从主图中可以更轻松地验证其中的数据。