1. 程式人生 > >Android gradle SourceSets介紹與使用

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!