Android gradle SourceSets介绍与使用

转载:https://blog.csdn.net/lbcab/article/details/72771729

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']
        }

}1234567891011121314

那么如何进行修改?

sourceSets {
    main {
        java {
            srcDir 'src/java' // 指定源码目录
        }
        resources {
            srcDir 'src/resources' //资源目录
        }
    }
}12345678910

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'
            }
        }
    }123456789

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

sourceSets {
    main {
        java {
            srcDir 'src/myJavaPath'
        }
    }
}1234567

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

    sourceSets {
        main {
            java {
                exclude '/test/**'  // 不想包含文件的路径
            }
            resources {
                exclude '/resource/**' // 不想包含的资源文件路径
            }
            .....
        }
    }1234567891011

官方对SourceSets各项的介绍:
--------------------- 
作者:lbcab 
来源:CSDN 
原文:https://blog.csdn.net/lbcab/article/details/72771729 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/oneblue123/article/details/83686077