【问题标题】:kapt not enabling incremental annotation processingkapt 不启用增量注释处理
【发布时间】:2020-04-23 02:53:37
【问题描述】:

由于某种原因,Kapt 抱怨我的一个模块上没有启用增量编译。但是,我认为没有理由不应该这样做。

运行core:kaptKotlin时的警告信息

[WARN] Incremental annotation processing requested, but support is disabled because the following processors are not incremental: io.github.mdsimmo.cmdmsg.TextPreprocessor (NON_INCREMENTAL).

报错说明io.github.mdsimmo.cmdmsg.TextPreprocessor是模块出错,但不明白为什么不是增量的?

我在每个模块的gradle.properties 中添加了kapt.incremental.apt=true(尽管我不应该这样做,因为较新的 kapt 版本默认会这样做)。

这是 CmdMsgProcessor/build.gradle(包含 TextPreProcessor 的模块):

plugins {
    id 'java'
    id "org.jetbrains.kotlin.jvm" version "1.3.72"
    id "org.jetbrains.kotlin.kapt" version "1.3.72"
    id 'idea'
}

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.+"

    implementation project(":cmdMsg")
    implementation('com.google.auto.service:auto-service:1.0-rc6')
    kapt('com.google.auto.service:auto-service:1.0-rc6')
}

还有cmdMsg/build.gradle(CmdMsgProcessor/build.gradle中列出的依赖)

plugins {
    id 'java'
    id "org.jetbrains.kotlin.jvm" version "1.3.72"
    id 'idea'
}

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.+"
}

我错过了什么?

【问题讨论】:

    标签: kotlin gradle annotation-processing kapt


    【解决方案1】:

    根据official guide for kapt

    目前,注解处理只能在所有注解的情况下进行增量处理 正在使用的处理器是增量的。

    kapt 警告您 io.github.mdsimmo.cmdmsg.TextPreprocessor 不支持增量注解处理,因此整个构建都禁用增量处理。

    【讨论】:

    • 我知道。问题是“为什么 TextPreprocessor 不是增量的”? (我已经编辑了问题以使其更清楚)
    • 要使注释处理器与增量处理兼容需要做一些工作,这里有一个很好的参考:docs.gradle.org/current/userguide/…
    猜你喜欢
    • 2019-10-01
    • 1970-01-01
    • 2017-10-26
    • 2017-03-21
    • 2018-01-17
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多