XGo*_*het 4 plugins android gradle gradle-plugin
我正在为 gradle 编写一个插件,为 Android 项目生成一些类。
我在项目src/gen/java文件夹中生成这些类,因为我不希望它们与真实的源代码混合。
从项目的build.gradle配置中,我可以添加它以使构建工具看到生成的类:
android {
sourceSets {
main {
java {
srcDir 'src/gen/java'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我希望我的插件自动设置它。从我的插件中我尝试了以下操作:
公共类 MyPlugin 实现插件 {
@Override
public void apply(Project project) {
// ...
// TEST 1 : doesnt work
project.android.sourceSets.main.java.srcDirs += "src/gen/java"
// TEST 2 : doesnt work
project.android.sourceSets {
main {
java {
srcDir 'src/gen/java'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
每次插件都可以工作,但是编译器仍然看不到该文件夹,并且在编译时找不到生成的类。有谁知道通过插件执行此操作的另一种方法吗?
如果您将文件移动到build/generated/sources应用程序模块的目录,则插件当前正在为您生成代码,那么您不必将其添加到源集中。
你还可以看看SQLDelight,它也是一个 gradle 插件,可以生成代码或AutoValue
编辑:
您还需要在将生成源代码的 BuildVariant 上调用registerJavaGenerateTask
| 归档时间: |
|
| 查看次数: |
4421 次 |
| 最近记录: |