如何为 kapt 注释伪造多遍

How to fake multi pass for kapt annotations

我为一个项目写了一些注释。不幸的是,一些注释依赖于我的另一个注释生成的代码。

具有讽刺意味的是,在所有注释 运行 之后,除了 kapt3 存根之外,代码符合要求...因为未知类型。

有没有办法伪造这个?如果我将一些注释放在不同的 gradle 项目中,或者任何类似的项目,我可以控制顺序吗?我知道哪些取决于哪些...我知道这听起来很丑...

但是这是一堆容易出错的样板,如果这不起作用,我将不得不输入。

或者,有没有办法从我的注释处理器中删除存根?

还是我只是SOL而kapt分别受限? (顺便说一句,新的 KSP AFAICT 也是如此)

谢谢

为后代添加这个。

我使用多个年级项目让它工作。

我正在使用复合构建来让它工作。你可以在这里阅读:Gradle Composit Builds

在底部你有所有的注释和注释处理器。在我的例子中,我只有一个处理器来处理我定义的所有注释。

我有另一个 gradle 项目,它使用注释来定义生成的类型的“第一遍”。它依赖于注释项目 (compileOnly) 以及 kapt 依赖项。

然后我的最终项目只是正常依赖于“first pass”项目,以及对注释项目的 kapt 依赖(再次编译)。

适合我,因为我只需要 2 次通过。这意味着第一遍生成其他遍需要定义的所有类型。

有点难看但有效。如果有人知道更好的方法,我很想听听。