类型 'JavaCompile' 属性 'options.compilerArgumentProviders.apt[=11=].name' 缺少输入或输出注释。升级到 Gradle 7 后出错

Type 'JavaCompile' property 'options.compilerArgumentProviders.apt$0.name' is missing an input or output annotation. error after upgrading to Gradle 7

升级到 Gradle 7.0 并进行构建后,出现以下故障:

> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Some problems were found with the configuration of task ':compileJava' (type 'JavaCompile').
  - Type 'JavaCompile' property 'options.compilerArgumentProviders.apt[=14=].name' is missing an input or output annotation.
    
    Reason: A property without annotation isn't considered during up-to-date checking.
    
    Possible solutions:
      1. Add an input or output annotation.
      2. Mark it as @Internal.
    
    Please refer to https://docs.gradle.org/7.0/userguide/validation_problems.html#missing_annotation for more details about this problem.
  - Type 'JavaCompile' property 'options.compilerArgumentProviders.apt[=14=].publicType' is missing an input or output annotation.
    
    Reason: A property without annotation isn't considered during up-to-date checking.
    
    Possible solutions:
      1. Add an input or output annotation.
      2. Mark it as @Internal.
    
    Please refer to https://docs.gradle.org/7.0/userguide/validation_problems.html#missing_annotation for more details about this problem.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

我试过 --stacktrace 但没有得到任何帮助。 这里的问题是,我不确定要查看何处才能解决此问题,因为它没有提及 build.gradle 文件中的任何行或有关查找位置的其他提示。

对于有同样问题的任何人:正如 Bjørn 所指出的,apt 插件是我的 Gradle 构建文件中的罪魁祸首。我删除了通用的 (id "net.ltgt.apt") 和 IntelliJ 的 (id "net.ltgt.apt-idea"),我的构建文件再次运行。

只需删除所有 net.ltgt.apt 依赖项。您将不再需要它,因为它的功能现在可以在 Gradle.

中原生使用

更多详情: 来自插件 README.md (https://github.com/tbroyer/gradle-apt-plugin#readme)

The goal of this plugin was to eventually no longer be needed, being superseded by built-in features. This has become a reality with Gradle 5.2 and IntelliJ IDEA 2019.1. tl;dr: this plugin is obsolete, don't use it. If you're using Eclipse though, continue reading.

It originally did a few things to make it easier/safer to use Java annotation processors in a Gradle build. Those things are now available natively in Gradle, so what's this plugin about?

If you use older versions of Gradle (pre-4.6), you can still benefit from those features:

    it ensures the presence of configurations for your compile-time only dependencies (annotations, generally) and annotation processors, consistently across all supported Gradle versions;
    automatically configures the corresponding JavaCompile and GroovyCompile tasks to make use of these configurations, when the java or groovy plugin is applied.

With recent versions of Gradle (between 4.6 and 5.1), this plugin will actually only:

    add some DSL to configure annotation processors; it is however recommended to directly configure the tasks' options.compilerArgs;
    backport the sourceSet.output.generatedSourcesDirs Gradle 5.2 API;
    configure JavaCompile and GroovyCompile tasks' options.annotationProcessorGeneratedSourcesDirectory with a sane default value so you can see the generated sources in your IDE and for debugging, and avoid shipping them in your JARs.

Gradle 7.2.* 和 Intellij Idea 只是摆脱了 net.ltgt.aptnet.ltgt.apt-idea,更多信息请参见 https://github.com/tbroyer/gradle-apt-plugin

apply plugin: 'net.ltgt.apt-idea' 遇到了这个错误