如何解决在 gradle kotlin dsl 中使用 Avro to java 插件
我有一个使用 gradle kotlin dsl 构建的 java 项目。
现在我想像这样使用 gradle-avro-plugin https://github.com/davidmc24/gradle-avro-plugin#alternate-usage
在 kotlin dsl 中,我编写了与下面相同的逻辑 -
plugins {
java
id( "com.github.davidmc24.gradle.plugin.avro") version "1.0.0"
}
dependencies {
implementation ("org.apache.avro","avro","1.10.1")
}
val generateAvro = tasks.register<com.github.davidmc24.gradle.plugin.avro.GenerateAvroJavaTask>("generateAvro") {
source("src/avro")
this.setOutputDir(file("dest/avro"))
}
configure<org.gradle.api.tasks.compile.JavaCompile> {
this.source = fileTree(generateAvro)
}
当我运行 grade compileJava
-
> * What went wrong:
“JavaCompile”类型的扩展不存在。当前注册的扩展类型:[ExtraPropertiesExtension、DefaultArtifactPublicationSet、SourceSetContainer、ReportingExtension、JavaPluginExtension、JavaInstallationRegistry、JavaToolchainService、DistributionContainer、JavaApplication、DefaultAvroExtension]
我该如何解决这个错误?
解决方法
我遇到了类似的问题,对我有用的是:
plugins {
id("com.github.davidmc24.gradle.plugin.avro") version "1.2.0"
}
dependencies {
implementation("org.apache.avro:avro:1.10.1")
}
tasks.withType<com.github.davidmc24.gradle.plugin.avro.GenerateAvroJavaTask> {
setOutputDir(file("src/dest/dir/"))
}
重要的是我没有注册新任务,只是为每个任务指定了一个新的目标目录,类型为 GenerateAvroJavaTask
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。