gradle SourceSets使用

一、SourceSets作用

通过修改SourceSets中的属性,可以指定需要被编译的源文件,不在指定路径下的源文件将会被排除(即不会被编译)。Gradle通过SourceSets实现了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、如果我们不想用默认的,可以重新指定,按如下方式就可以修改目录布局结构

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

2、针对debug与release模式下, 指定不同的Manifest文件

sourceSets {
        main {
            if (isDebug.toBoolean()) {
                manifest.srcFile 'src/main/debug/AndroidManifest.xml'
            } else {
                manifest.srcFile 'src/main/release/AndroidManifest.xml'
            }
        }
    }

3、如果不想按照java标准提供的文件夹结构,可以通过以下方式重新指定

sourceSets {
    main {
        java {
            srcDir 'src/customJavaPath'
        }
    }
}


版权声明:本文为weixin_42600398原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。