Android(安卓)gradle SourceSets介绍与使用
16lz
2021-01-26
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各项的介绍:
更多相关文章
- ubuntu 下android 真机调试配置
- 在Android下抓包
- 使用nginx在android手机上搭建rtmp服务器并测试
- Android自定义Dialog简单实例
- AndroidManifest文件格式、Resource.arsc文件格式解析与混淆
- AndroidTestCase来进行android 单元测试简介
- Android(安卓)丢失R.java文件处理方法
- Android进阶之如何实现国际化和各国Values文件夹命名
- (二)在Android硬件抽象层增加接口模块访问硬件驱动程序