项目级别

buildscript {val kotlin = "1.4.0"allprojects {extra.apply {set("kotlin", kotlin)}}repositories {google()jcenter()maven { url = uri("https://plugins.gradle.org/m2/") }mavenCentral()maven { url = uri("https://dl.bintray.com/umsdk/release") }}dependencies {classpath("com.android.tools.build:gradle:4.1.0")classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin")}
}allprojects {repositories {google()jcenter()maven { url = uri("https://plugins.gradle.org/m2/") }maven { url = uri("https://dl.bintray.com/umsdk/release") }maven { url = uri("https://jitpack.io") }maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots/") }}
}tasks.register("clean", Delete::class) {delete(rootProject.buildDir)
}

app级别

plugins {id("com.android.application")kotlin("android")jacoco
}jacoco {toolVersion = "0.8.3"
}// ./gradlew test connectedDevelopDebugAndroidTest jacocoTestReport
// task must be created, examples in Kotlin which call tasks.jacocoTestReport do not work
tasks.create("jacocoTestReport", JacocoReport::class.java) {group = "Reporting"description = "Generate Jacoco coverage reports."reports {xml.isEnabled = truehtml.isEnabled = true}val fileFilter = listOf("**/R.class", "**/R$*.class", "**/BuildConfig.*", "**/Manifest*.*", "**/*Test*.*", "android/**/*.*")val developDebug = "developDebug"sourceDirectories.setFrom(files(listOf("$projectDir/src/main/java","$projectDir/src/main/kotlin")))classDirectories.setFrom(files(listOf(fileTree("dir" to "$buildDir/intermediates/javac/$developDebug", "excludes" to fileFilter),fileTree("dir" to "$buildDir/tmp/kotlin-classes/$developDebug", "excludes" to fileFilter))))// execution data from both unit and instrumentation testsexecutionData.setFrom(fileTree("dir" to project.buildDir,"includes" to listOf(// unit tests"jacoco/test${"developDebug".capitalize()}UnitTest.exec",// instrumentation tests"outputs/code_coverage/${developDebug}AndroidTest/connected/**/*.ec")))dependsOn("test${"developDebug".capitalize()}UnitTest")dependsOn("connected${"developDebug".capitalize()}AndroidTest")
}tasks.withType(Test::class.java) {(this.extensions.getByName("jacoco") as JacocoTaskExtension).isIncludeNoLocationClasses = true
}val acraEmail = project.rootProject.file("local.properties").let { if (it.exists()) it.readLines() else emptyList() }.filterNot { it.startsWith("#") }.map { line -> line.substringBefore("=") to line.substringAfter("=") }.toMap().getOrDefault("acra.email", "")version = "3.07.00"android {compileSdkVersion(29)defaultConfig {applicationId = "com.anguomob.alarm"minSdkVersion(16)targetSdkVersion(29)testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"multiDexEnabled = trueflavorDimensions("default")}signingConfigs {create("release") {keyAlias = "anguo"keyPassword = "ag720888"storeFile = file("../anguo.jks")storePassword = "ag720888"}getByName("debug") {keyAlias = "anguo"keyPassword = "ag720888"storeFile = file("../anguo.jks")storePassword = "ag720888"}}buildTypes {getByName("release") {signingConfig = signingConfigs.getByName("release")isTestCoverageEnabled = trueisMinifyEnabled = truebuildConfigField("String", "ACRA_EMAIL", "\"$acraEmail\"")proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")applicationVariants.all {outputs.all {if (this is com.android.build.gradle.internal.api.ApkVariantOutputImpl) {this.outputFileName = "alarm_$flavorName@_v$versionName.apk"}}}}getByName("debug") {signingConfig = signingConfigs.getByName("debug")isMinifyEnabled = falsebuildConfigField("String", "ACRA_EMAIL", "\"$acraEmail\"")}}productFlavors {create("anguo")create("yyb")create("baidu")create("sanliuling")create("wandoujia")create("vivo")create("oppo")create("huawei")create("meizu")create("xiaomi")create("kuan") }productFlavors.all {manifestPlaceholders["UMENG_CHANNEL_VALUE"] = name}lintOptions {isAbortOnError = false}adbOptions {timeOutInMs = 20 * 60 * 1000  // 20 minutesinstallOptions("-d", "-t")}dexOptions {preDexLibraries = System.getenv("TRAVIS") != "true"}useLibrary("android.test.runner")useLibrary("android.test.base")useLibrary("android.test.mock")compileOptions {sourceCompatibility = JavaVersion.VERSION_1_8targetCompatibility = JavaVersion.VERSION_1_8}kotlinOptions {jvmTarget = "1.8"useIR = true}
}dependencies {// App dependenciesimplementation(kotlin("stdlib", version = project.extra["kotlin"] as String))implementation("ch.acra:acra-mail:5.5.0")implementation("com.melnykov:floatingactionbutton:1.2.0")implementation("io.reactivex.rxjava2:rxjava:2.2.19")implementation("io.reactivex.rxjava2:rxandroid:2.1.1")implementation("org.koin:koin-core:2.1.5")implementation("androidx.fragment:fragment:1.2.5")implementation("androidx.preference:preference:1.1.1")implementation("com.anguomob:lib:1.6.5")implementation("com.anguomob:ads:1.8.8")}dependencies {testImplementation("net.wuerl.kotlin:assertj-core-kotlin:0.1.1")testImplementation("junit:junit:4.13")testImplementation("org.mockito:mockito-core:2.23.4")testImplementation("io.mockk:mockk:1.10.0")
}dependencies {androidTestImplementation("com.squareup.assertj:assertj-android:1.1.1")androidTestImplementation("androidx.test.espresso:espresso-core:3.3.0")androidTestImplementation("androidx.test:runner:1.3.0")androidTestImplementation("androidx.test:rules:1.3.0")// androidx.test.ext.junit.rules.ActivityScenarioRule// androidx.test.ext.junit.runners.AndroidJUnit4androidTestImplementation("androidx.test.ext:junit:1.1.2")
}

kts 样例,包含多渠道打包。改名相关推荐

  1. SNF快速开发平台MVC-各种级联绑定方式,演示样例程序(包含表单和表格控件)...

    做了这么多项目,经常会使用到级联.联动的情况. 如:省.市.县.区.一级分类.二级分类.三级分类.仓库.货位. 方式:有表单需要做级联的,还是表格行上需要做级联操作的. 实现:实现方法也有很多种方式. ...

  2. 微软发布了Visual Stduio 2010 RTM版本的虚拟机vhd文件,包含样例和动手实验(免费)...

    原文: hthttp://www.almnetworks.net/zh-CN/post/2010/06/30/Now-Available-Visual-Studio-2010-RTM-Virtual- ...

  3. 题目 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。 样例 括号必须依照 ()顺序表示, ()[]

    题目 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列. 样例 括号必须依照 "()"顺序 ...

  4. python 第一行包含一个整数n、表示行数_输入 第一行输入一个整数n(1 = n = 100)表示测试样例个数 接下来n行,一...

    展开全部 #include #include #include #define STRLEN 100 void ifree(char**p,int i); int CheckAndChange(cha ...

  5. android 友盟多渠道打包工具,Android渠道打包最佳实践(以友盟为例)

    渠道包是每一个Android产品面临的问题,国内几乎每个手机厂商都有自己的安卓市场,导致需要的渠道包非常多,很多app的渠道都达到了丧心病狂的几百个,每次打渠道包都是一个痛苦的过程. 多渠道打包方案 ...

  6. HLS-Demo IOS 视屏直播样例

    from: https://github.com/yangchao0033/HLS-Demo/blob/master/README.md demo简介:如果觉得文章有用的话,请读者在github上点个 ...

  7. RPM安装包-Spec文件參数具体解释与演示样例分析

    spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件. 1.Spec文件參数 spec文件包括建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个 ...

  8. K8S Yaml 详细说明及简单样例

    一.K8S Yaml 配置文件主要分为基本标签.元数据标签.资源内容 3 个部分 基本标签 apiVersion: v1 #必选,版本号,例如v1 kind: Pod #必选,Pod 元数据标签 me ...

  9. RN开发(1)__环境搭建与样例

    目录 前言 正文 环境搭建 样例实现 问题整理(补充中) 相关资源链接 小结 Tip:使用"Ctrl+F",在搜索框中输入问题 前言 先要了解几个相关的词汇Node.js,Reac ...

最新文章

  1. 简单点亮发光二极管实例(位操作)
  2. Artificial Intelligence and Change Management
  3. 基于VC++开发串口通信的方法
  4. 20220213-CTF MISC-a_good_idea(stegsolve工具的使用)-2017_Dating_in_Singapore
  5. 深入理解C/C++函数指针
  6. 英伟达:今年显卡将继续供不应求 尽量保证供应普通玩家
  7. NET牛人应该知道些什么
  8. 如何检查字符串是否包含特定的单词? [英]How do I check if a string contains a specific word?
  9. VB 使用SendMessage枚举文件与目录
  10. matlab图形标注名称_matlab入门(三)图像可视化
  11. 一些学习笔记和工作布置
  12. 海湾监控计算机,海湾GST-DH9300电气火灾监控图形显示系统软件
  13. coreseek4.1
  14. Web前端面试:这40个经典Web前端面试题面试者必看!
  15. 视频服务器显示存储离线,云端服务器显示离线咋会事
  16. 【转】Photoshop 用户名.组织或序列号丢失或无效.应用程序无法继续.
  17. 易语言编写倒计时小程序
  18. Calcite 原理解析
  19. oracle取某年工作日,Oracle计算指定日期内的工作日(不包含周末)
  20. windows下Spacy安装说明

热门文章

  1. 走向J2EE,漫长的道路
  2. mysql分类统计roll_MySQL复习汇总
  3. (一)Jira Api对接:获取项目和sprint
  4. Low-Light Image Enhancement via Self-Reinforced Retinex Projection Model 论文阅读笔记
  5. HBO《硅谷》中的二进制码
  6. Python如何使用FFmpeg来播放网络直播
  7. ROS机器人操作系统安装
  8. 本特利电涡流传感器系统的维护
  9. Linux时间戳和时间格式转化
  10. python+opencv最简单的人脸识别入门