【发布时间】:2021-01-30 17:06:12
【问题描述】:
我创建了一个包含 2 个模块的 gradle java 项目:
- grpc 客户端模块
- grpc 服务器模块
当我构建它们时,出于某种原因,grpc 和 protobuf 文件不止一次生成。第二个文件生成后缀为“2”,因此引发错误,如下面的屏幕截图所示。
gradle 文件如下,客户端和服务器端相同。
apply plugin: 'java'
apply plugin: 'com.google.protobuf'
repositories {
mavenCentral()
}
def grpcVersion = '1.24.1'
dependencies {
compile "io.grpc:grpc-netty:${grpcVersion}"
compile "io.grpc:grpc-protobuf:${grpcVersion}"
compile "io.grpc:grpc-stub:${grpcVersion}"
compile 'com.google.protobuf:protobuf-java:3.9.2'
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
}
}
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.9.2'
}
plugins {
grpc {
artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}"
}
}
generateProtoTasks {
all()*.plugins {
grpc {}
}
}
}
sourceSets {
main {
java {
srcDirs 'build/generated/source/proto/main/grpc'
srcDirs 'build/generated/source/proto/main/java'
}
}
}
jar {
manifest {
attributes "Main-Class": "ecommerce.ecommerce.OrderMgtServer"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
// Generate IntelliJ IDEA's .idea & .iml project files
apply plugin: 'idea'
// Provide convenience executables for trying out the examples.
apply plugin: 'application'
startScripts.enabled = false
【问题讨论】:
-
是否有可能因为 Gradle 构建输出和 IDE 构建输出而获得重复的类?如果是这种情况,您可以将 IDE 构建操作委托给 gradle 吗?