Raj*_*jan 5 gradle protobuf-java gradle-kotlin-dsl
我com.google.protobuf在我的项目中使用 gradle 插件从 proto 文件生成 java 类。下面是我的 build.gradle,它运行良好。
buildscript {
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
}
}
plugins {
id 'java'
id 'com.google.protobuf' version '0.8.18'
}
repositories {
mavenCentral()
mavenLocal()
}
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
implementation('io.grpc:grpc-netty-shaded:1.45.1')
implementation('io.grpc:grpc-stub:1.45.1')
implementation('io.grpc:grpc-protobuf:1.45.1')
implementation 'javax.annotation:javax.annotation-api:1.3.2'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
test {
useJUnitPlatform()
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.20.0"
}
plugins {
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.45.1'
}
}
generateProtoTasks {
all()*.plugins {
grpc {}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在将构建重写为 kotlin dsl,如下所示 -
import com.google.protobuf.gradle.protoc
buildscript {
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
classpath ("com.google.protobuf:protobuf-gradle-plugin:0.8.18")
}
}
plugins {
java
id("com.google.protobuf") version "0.8.18"
}
repositories {
mavenCentral()
mavenLocal()
gradlePluginPortal()
}
group = "org.example"
version = "1.0-SNAPSHOT"
dependencies {
implementation("io.grpc:grpc-netty-shaded:1.45.1")
implementation("io.grpc:grpc-stub:1.45.1")
implementation("io.grpc:grpc-protobuf:1.45.1")
// implementation("org.apache.tomcat:annotations-api:6.0.53")
implementation("javax.annotation:javax.annotation-api:1.3.2")
testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}
tasks.getByName<Test>("test") {
useJUnitPlatform()
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.20.0"
}
plugins {
grpc {
artifact = "io.grpc:protoc-gen-grpc-java:1.45.1"
}
}
generateProtoTasks {
all()*.plugins {
grpc {}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,gradle clean compileJava我收到以下错误 -
$ gradle clean 编译Java
配置项目:e:/home/rajkumar/Coding/java/grpc/grpc-complete-course/grpc-gradle-kts-demo/build.gradle.kts:50:15:需要一个元素e:/home/rajkumar/ Coding/java/grpc/grpc-complete-course/grpc-gradle-kts-demo/build.gradle.kts:41:5:未解析的参考。由于接收器类型不匹配,以下候选者均不适用: public fun ProtobufConfigurator.protoc(action: ExecutableLocator.() -> Unit): Unit Defined in com.google.protobuf.gradle e: /home/rajkumar/Coding/java /grpc/grpc-complete-course/grpc-gradle-kts-demo/build.gradle.kts:45:9:未解析的参考:grpc e:/home/rajkumar/Coding/java/grpc/grpc-complete-course/ grpc-gradle-kts-demo/build.gradle.kts:46:13:未解析的参考:工件 e:/home/rajkumar/Coding/java/grpc/grpc-complete-course/grpc-gradle-kts-demo/build .gradle.kts:49:5:未解析的参考:generateProtoTasks e:/home/rajkumar/Coding/java/grpc/grpc-complete-course/grpc-gradle-kts-demo/build.gradle.kts:50:9:未解决的参考。由于接收者类型不匹配,以下候选者都不适用: public inline fun Array<out TypeVariable(T)>.all(predicate: (TypeVariable(T)) -> Boolean): Boolean Defined in kotlin.collections public inline fun BooleanArray .all(predicate: (Boolean) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun ByteArray.all(predicate: (Byte) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun CharArray.all(predicate : (Char) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun CharSequence.all(predicate: (Char) -> Boolean): kotlin.text 中定义的布尔值 public inline fun DoubleArray.all(predicate: (Double) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun FloatArray.all(predicate: (Float) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun IntArray.all(predicate: (Int) -> Boolean) :在 kotlin.collections 中定义的布尔值 public inline fun LongArray.all(predicate: (Long) -> Boolean):在 kotlin.collections 中定义的布尔值 public inline fun ShortArray.all(predicate: (Short) -> Boolean):在 kotlin.collections 中定义的布尔值kotlin.collections public inline fun UByteArray.all(predicate: (UByte) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun UIntArray.all(predicate: (UInt) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun ULongArray.all(predicate: (ULong) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun UShortArray.all(predicate: (UShort) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun Iterable< TypeVariable(T)>.all(predicate: (TypeVariable(T)) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun <K, V> Map<out TypeVariable(K), TypeVariable(V)>.all (谓词: (Map.Entry<TypeVariable(K), TypeVariable(V)>) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun Sequence<TypeVariable(T)>.all(predicate:
失败:构建失败并出现异常。
其中:构建文件'/home/rajkumar/Coding/java/grpc/grpc-complete-course/grpc-gradle-kts-demo/build.gradle.kts'行:50
出了什么问题:脚本编译错误:
第 50 行:all()*.plugins { ^ 需要一个元素
第 41 行:protoc { ^ 未解析的引用。由于接收器类型不匹配,以下候选者均不适用: public fun ProtobufConfigurator.protoc(action: ExecutableLocator.() -> Unit): Unit Defined in com.google.protobuf.gradle
第 45 行:grpc { ^ 未解析的参考:grpc
第 46 行:artifact = "io.grpc:protoc-gen-grpc-java:1.45.1" ^ 未解析的参考:artifact
第 49 行:generateProtoTasks { ^ 未解析的参考:generateProtoTasks
第 50 行:all()*.plugins { ^ 未解析的引用。由于接收者类型不匹配,以下候选者都不适用: public inline fun Array<out TypeVariable(T)>.all(predicate: (TypeVariable(T)) -> Boolean): Boolean Defined in kotlin.collections public inline fun BooleanArray .all(predicate: (Boolean) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun ByteArray.all(predicate: (Byte) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun CharArray.all(predicate : (Char) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun CharSequence.all(predicate: (Char) -> Boolean): kotlin.text 中定义的布尔值 public inline fun DoubleArray.all(predicate: (Double) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun FloatArray.all(predicate: (Float) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun IntArray.all(predicate: (Int) -> Boolean) :在 kotlin.collections 中定义的布尔值 public inline fun LongArray.all(predicate: (Long) -> Boolean):在 kotlin.collections 中定义的布尔值 public inline fun ShortArray.all(predicate: (Short) -> Boolean):在 kotlin.collections 中定义的布尔值kotlin.collections public inline fun UByteArray.all(predicate: (UByte) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun UIntArray.all(predicate: (UInt) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun ULongArray.all(predicate: (ULong) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun UShortArray.all(predicate: (UShort) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun Iterable< TypeVariable(T)>.all(predicate: (TypeVariable(T)) -> Boolean): kotlin.collections 中定义的布尔值 public inline fun <K, V> Map<out TypeVariable(K), TypeVariable(V)>.all (predicate: (Map.Entry<TypeVariable(K), TypeVariable(V)>) -> Boolean):在 kotlin.collections 中定义的布尔值 public inline fun Sequence<TypeVariable(T)>.all(predicate: (TypeVariable(T)) ) -> Boolean): kotlin.sequences 中定义的布尔值 public inline fun ComponentMetadataHandler.all(): org.gradle.kotlin.dsl 中定义的 ComponentMetadataHandler public inline fun ComponentMetadataHandler.all(rule: KClass): org.gradle 中定义的 ComponentMetadataHandler。 kotlin.dsl public inline fun ComponentMetadataHandler.all(rule: KClass, configureAction: Action): org.gradle.kotlin.dsl 中定义的 ComponentMetadataHandler public inline fun ComponentMetadataHandler.all(configureAction: Action): org.gradle.kotlin 中定义的 ComponentMetadataHandler。 DSL
第 51 行:grpc {} ^ 未解析的引用:grpc
7 个错误
- 尝试:
使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
- 在https://help.gradle.org获取更多帮助
2秒内构建失败
我该如何修复该错误?我不知道如何在 kotlin dsl 中做到这一点?
| 归档时间: |
|
| 查看次数: |
1185 次 |
| 最近记录: |