美文网首页
项目中gradle使用小结

项目中gradle使用小结

作者: 扶云九霄 | 来源:发表于2018-03-20 16:10 被阅读45次

需求:一套代码生成多个应用(功能大体相同,小部分不同)

1.productFlavors配置多个渠道

  productFlavors {
          aaa{
              applicationId "xxxx"
              buildConfigField "String", "BASE_URL", ""http://xxxx""
              resValue "string", "version",  "V" + defaultConfig.versionName +           
              releaseTime()
          }

          bbb{
              applicationId "xxxx"
               buildConfigField "String", "BASE_URL", ""http://xxxx""
               resValue "string", "version",  "V" + defaultConfig.versionName +           
               releaseTime()
          }
 }

2.在app项目src/main同级目录[渠道名]

根据渠道编写不同的配置

123.png

3.sourceSets根据flavor选择资源
sourceSets {
main {
def currentFlavor = getCurrentFlavor()
if (currentFlavor.equals("aaa")) {
manifest.srcFile 'src/main/manifestaaa/AndroidManifest.xml'
} else if (currentFlavor.equals("bbb")){
manifest.srcFile 'src/main/manifestdongfang/AndroidManifest.xml'
} else if (currentFlavor.equals("ccc")){
manifest.srcFile 'src/main/manifestccc/AndroidManifest.xml'
}

        //排除资源文件
        java {
            if (!isNeedThirdLogin()) {
                exclude 'xxx'
            }

            if (!isNeedJPush()) {
                exclude 'com.xxx'
            }
        }
    }
}

4.可以根据渠道配置不同的依赖


234.png

5.其他gradle相关

  • 生成jar

    task makeJar(type: Copy) {
      delete 'build/libs/googlefbs.jar'
      from('build/intermediates/bundles/release/')
      into('build/libs/')
      include('classes.jar')
      rename('classes.jar', 'googlefbs.jar')
     }
    makeJar.dependsOn(build)
    
  • 生成指定格式apk名

      android.applicationVariants.all { variant ->
       variant.outputs.all {
       outputFileName = 
       "ylsx_${variant.productFlavors[0].name}_${defaultConfig.versionName}
       (${releaseTime()}).apk" }
      }
    
    def releaseTime() {
      return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
    }
    
  1. 多module统一版本依赖
  • 在project下创建config.gradle
  • 在project的build.gradle加入apply from : "config.gradle"
  • 在module的build.gradle定义def config = rootProject.ext
  • 如下图:


    6.png
7.png

相关文章

网友评论

      本文标题:项目中gradle使用小结

      本文链接:https://www.haomeiwen.com/subject/whjbqftx.html