如何从gradle插件向android项目源集中添加文件夹
我正在为gradle编写一个插件,为Android项目生成一些类 我在projects如何从gradle插件向android项目源集中添加文件夹,android,gradle,plugins,gradle-plugin,Android,Gradle,Plugins,Gradle Plugin,我正在为gradle编写一个插件,为Android项目生成一些类 我在projectssrc/gen/java文件夹中生成这些类,因为我不希望它们与真正的源代码混合 从项目的build.gradleconfig中,我可以添加以下内容,使构建工具可以看到生成的类: android { sourceSets { main { java { srcDir 'src/gen/java' }
src/gen/java
文件夹中生成这些类,因为我不希望它们与真正的源代码混合
从项目的build.gradle
config中,我可以添加以下内容,使构建工具可以看到生成的类:
android {
sourceSets {
main {
java {
srcDir 'src/gen/java'
}
}
}
}
问题是我想让我的插件自动设置。从我的插件中,我尝试了以下方法:
公共类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'
}
}
}
}
}
每次插件运行时,编译器仍然看不到该文件夹,并且在编译时也找不到生成的类。有人知道从插件中执行此操作的其他方法吗?如果您将文件移动到插件当前正在为您生成代码的应用程序模块的
生成/生成/源目录,则不必将其添加到源代码集中
您还可以看看哪个是gradle插件,它可以生成代码或
编辑:
您还需要在生成源代码的BuildVariant上调用,对吗?非来源
复数。当我使用该设置在单元测试和平板测试之间共享测试装置时,Android Studio会看到所有装置,但总是抱怨一个导入行(只有一行),并将共享文件夹涂成红色。嘘。。。这是对我在Android Studio的盒子之外思考的惩罚。。。