gpt4 book ai didi

android - Gradle 自定义 JavaCompile 任务进行注解处理

转载 作者:行者123 更新时间:2023-12-03 05:26:36 25 4
gpt4 key购买 nike

我正在开发一个注册 JavaCompile 的 gradle 插件。应该触发注释处理过程的任务。

这是我目前拥有的

private fun Project.runConfiguration(variants: DomainObjectSet<out BaseVariant>) {
variants.all { variant ->
// Assert Shuttle annotation processor is present or throw exception
val processor = ShuttleProcessor::class.java.canonicalName ?: throw ShuttleCompilerNotFoundException()
val packageName = variant.getPackageName()
val task = tasks.register(
"generateShuttle${variant.name.capitalize()}Sources",
JavaCompile::class.java
) {
it.group = TASK_GROUP
it.source = variant.getSourceFolders(SourceKind.JAVA).first()
it.options.annotationProcessorPath = variant.annotationProcessorConfiguration
it.options.compilerArgs.addAll(listOf(
"-proc:only", "-implicit:none",
"-processor", processor
))
}

variant.registerJavaGeneratingTask(task.get())
}
}

在一个 android 项目中,当我应用我的插件并使用 gradle 运行任务时,到目前为止什么都没有发生。我什至尝试在处理器的第一行抛出异常,但仍然没有成功。

我错过了什么或做错了什么?另外我如何告诉任务它应该使用 ShuttleProcessor作为注释处理器。

我正在使用 kotlin而不是 Groovy .

谢谢。

最佳答案

我找到了解决问题的方法。 JavaCompile任务必须知道我们使用的处理器在哪里。所以缺失的部分是这些线条

val classPath = variant.getCompileClasspath(null)

我的任务配置应该包含这些更改
classpath = classPath
options.annotationProcessorPath = classPath

关于android - Gradle 自定义 JavaCompile 任务进行注解处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60958450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com