Gradle:在构建flavor时从src / main中排除包

时间:2015-03-09 18:38:44

标签: android android-studio gradle

我正在使用flavor来配置android项目。有三种口味,其中两种使用来自主要来源的相同包(" src / main"),第三种口味需要排除这个包。有没有办法从" main"中排除来源?使用特定的味道?

1 个答案:

答案 0 :(得分:0)

java插件自动将src / main添加到实现接口SourceDirectorySet的java srcDir中。但是,此接口不允许删除目录,只允许添加目录。 作为一种解决方法,您可以:

  1. 重命名共享代码文件夹,以便不会自动包含它(例如,将代码放在common / src / main或类似的src / main下)
  2. 添加类型为Copy的prepareSources任务,该任务将复制替代src / main文件夹下的所有相关源(例如,在$ project.buildDir / src下)
  3. 使compileJava和processResources依赖于新的prepareSources任务: compileJava.dependsOn prepareSources processResources.dependsOn prepareSources
  4. 将新的src目录添加到srcDir
  5. 虽然它可能不是最佳解决方案,但这应该可以完成。