首页 > 解决方案 > Eclipse 未在 gradle 项目下显示 generateProto 任务

问题描述

我正在开发一个基于 GRPC 的项目,并且正在使用 gradle 来获取所有依赖项并从我的 proto 文件中生成 java 文件。

这是我的build.gradle文件,

apply plugin: 'java-library'
apply plugin: 'java'
apply plugin: 'com.google.protobuf'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use mavenCentral for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    mavenCentral()
}

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    // ASSUMES GRADLE 2.12 OR HIGHER. Use plugin version 0.7.5 with earlier
    // gradle versions
    classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.5'
  }
}

dependencies {
    // This dependency is exported to consumers, that is to say found on their compile classpath.
    api 'org.apache.commons:commons-math3:3.6.1'

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:23.0'

    // Use JUnit test framework
    testImplementation 'junit:junit:4.12'

    //grpc
    compile 'io.grpc:grpc-netty:1.13.1'
    compile 'io.grpc:grpc-protobuf:1.13.1'
    compile 'io.grpc:grpc-stub:1.13.1'
}

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

刷新 gradle 项目后,我在 eclipse 的 gradle 任务下看不到 generateProto。我选择了eclipse下的Gradle项目来创建我的项目。

在此处输入图像描述

标签: eclipsegradlebuild.gradleprotocol-buffersgrpc

解决方案


他们没有出现的原因可以在这里找到。

基本上这些generate{*}Prooto任务没有组名,因此 Eclipse Gradle Tasks 视图不会显示它们。你可以给他们添加一个组名,然后他们就会出现。

protobuf {
  generateProtoTasks {
    all().each {
      it.group = 'my gen proto group'
    }
  }
}

推荐阅读