【发布时间】:2015-12-13 09:43:26
【问题描述】:
我有一个 Java 项目,它使用注释处理器生成源代码,随后必须将其添加到编译类路径并编译/打包。
这个项目是由 Gradle 构建的,所以我想知道如何在后台调用这些注释处理器,以便:
- 首先处理注解,在
src/main/java下生成需要的源码;然后 - 当 Gradle 进入编译阶段时,该源代码已经存在并且可以像所有其他源一样进行编译
当我运行gradle clean build 时,不会生成代码,并且其他源(取决于生成的类)无法编译。
我正在尝试了解需要做什么,以便 Gradle 运行必要的注释处理器并生成源代码。手头的特定处理器是 Immutables 项目所需的那些(也就是说,我的应用程序使用 Immutables 来生成不可变对象),但是我认为这个问题的答案是通用的并且与项目无关。
更新
类似这样的东西(?):
dependencies {
// ...
apt 'com.squareup.dagger:dagger-compiler:1.1.0'
apt "org.immutables:value:2.0.21"
compile 'com.squareup.dagger:dagger:1.1.0'
provided "org.immutables:value:2.0.21:annotations"
provided "org.immutables:builder:2.0.21"
provided "org.immutables:gson:2.0.21:annotations"
}
【问题讨论】:
标签: java gradle code-generation annotation-processing