java插件引入了一个概念叫做SourceSets,通过修改SourceSets中的属性,可以指定哪些源文件(或文件夹下的源文件)要被编译,哪些源文件要被排除。Gradle就是通过它实现Java项目的布局定义。
SourceSets目录结构是固定的Java的标准项目目录布局

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

那么如何进行修改?

sourceSets {    main {        java {            srcDir 'src/java' // 指定源码目录        }        resources {            srcDir 'src/resources' //资源目录        }    }}                        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

1.我们可以在sourceSets中配置指定的Manifest文件(例如在组件化开发中, 我们需要针对debug与release模式下, 指定不同的Manifest文件)

    sourceSets {        main {            if (isDebug.toBoolean()) {                manifest.srcFile 'src/main/debug/AndroidManifest.xml'            } else {                manifest.srcFile 'src/main/release/AndroidManifest.xml'            }        }    }                        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.如果我想要加一些我需要的java文件,但我们还不想按照java标准的文件夹结构

sourceSets {    main {        java {            srcDir 'src/myJavaPath'        }    }}                        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.如果我想在打包的时候, 不包含某些文件, 可以如下进行设置

    sourceSets {        main {            java {                exclude '/test/**'  // 不想包含文件的路径            }            resources {                exclude '/resource/**' // 不想包含的资源文件路径            }            .....        }    }                        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

官方对SourceSets各项的介绍:

更多相关文章

  1. ubuntu 下android 真机调试配置
  2. 在Android下抓包
  3. 使用nginx在android手机上搭建rtmp服务器并测试
  4. Android自定义Dialog简单实例
  5. AndroidManifest文件格式、Resource.arsc文件格式解析与混淆
  6. AndroidTestCase来进行android 单元测试简介
  7. Android(安卓)丢失R.java文件处理方法
  8. Android进阶之如何实现国际化和各国Values文件夹命名
  9. (二)在Android硬件抽象层增加接口模块访问硬件驱动程序

随机推荐

  1. Android之EditText 属性汇总
  2. android 相对布局中的 控件布局
  3. android 中的几种目录
  4. Android 4.0 对通知栏图标的尺寸有要求
  5. Android中webview跟JAVASCRIPT中的交互
  6. 取消默认Listview点击的显示的颜色
  7. Android获取经纬度
  8. Android编译系统学习总结
  9. Unity3d 与 Android之间的互相调用
  10. android振动效果的实现