我正在研究一个基于GRPC的项目,并且正在使用gradle获取所有依赖关系并从我的原始文件中生成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项目来创建我的项目。
答案 0 :(得分:2)
他们没有出现的原因可以找到here。
基本上,generate{*}Prooto
任务没有组名,因此Eclipse Gradle Tasks视图不会显示它们。您可以为他们添加一个组名,然后他们就会出现。
protobuf {
generateProtoTasks {
all().each {
it.group = 'my gen proto group'
}
}
}