我正在尝试为简单的 protobuf example 生成代码使用给出的构建指令 here 。我已经尝试了一段时间,但我无法在源根目录中看到任何自动生成的代码。
以下是我的build.gradle
文件
buildscript {
ext {
springBootVersion = '2.0.4.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath "io.spring.gradle:dependency-management-plugin:1.0.3.RELEASE"
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.5'
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'com.google.protobuf'
group = 'io.ai.vivid'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencyManagement {
imports {
mavenBom 'com.amazonaws:aws-java-sdk-bom:1.11.228'
}
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.5.1-1"
}
generateProtoTasks.generatedFilesBaseDir = 'generated-sources'
plugins {
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.14.0'
}
}
generateProtoTasks {
all()*.plugins {
grpc {}
}
}
}
dependencies {
compile 'io.grpc:grpc-netty-shaded:1.14.0'
compile 'io.grpc:grpc-protobuf:1.14.0'
compile 'io.grpc:grpc-stub:1.14.0'
}
还在我的 build.gradle
文件中,IntelliJ 提示它无法解析名称 protobuf
我尝试过的事情
在 IntelliJ 中同步 gradle 工具。这是最突出的解决方案
在 SO 中给出设置构建工具 -> Gradle -> Runner -> Delelgate IDE 构建/运行 gradle 上的操作为 true
干净地重建 gradle 项目。
根据我对GitHub帖子的理解,当你使用protobuf插件时,会自动为你生成 stub 。我错过了什么?
最佳答案
您已经应用了idea插件,但没有配置它。您需要告诉idea插件在哪里包含生成的源代码。
protobuf {
generatedFilesBaseDir = "$projectDir/src/generated"
}
idea {
module {
sourceDirs += file("${projectDir}/src/generated/main/java");
sourceDirs += file("${projectDir}/src/generated/main/grpc");
}
}
你可以看看 此处有构建文件的完整示例:build.gradle
关于java - 将 protobuf 与 Gradle (IntelliJ) 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52058851/