配置项目结构

当默认的项目结构不适用时,可以自定义配置。查看 Gradle 文档中 Java plugin 部分以了解如何在纯 Java 项目中进行配置。

Android plugin 使用了类似的语法,但因为 Android 有自己的 sourceSets,所以需要配置到 android 块中。下面的例子使用了旧的项目结构(Eclipse),并把 androidTestsourceSet 映射到 tests 目录中。

  1. android {
  2. sourceSets {
  3. main {
  4. manifest.srcFile 'AndroidManifest.xml'
  5. java.srcDirs = ['src']
  6. resources.srcDirs = ['src']
  7. aidl.srcDirs = ['src']
  8. renderscript.srcDirs = ['src']
  9. res.srcDirs = ['res']
  10. assets.srcDirs = ['assets']
  11. }
  12. androidTest.setRoot('tests')
  13. }
  14. }

注意:因为旧的结构把所有的源文件(Java, AIDL, Renderscript)放在同一个目录中,所以我们需要重新映射所有的 sourceSet 新组件到同一个 src 目录下。

注意:setRoot() 会移动所有的 sourceSet(包括它的子目录)到新的目录。例子中把 src/androidTest/* 移动到 tests/*

Android 特有的 sourceSets 在 Java sourceSets 中不起作用。