Android杂谈之用kotlin替代groovy

作为一个Android开发,当你习惯了使用Kotlin开发后,突然发现gradle文件也可以用kotlin写了,是不是感觉很Nice! 废话不多说,先扒文档 https://developer.android.com/studio/build/migrate-to-kts  Google官方文档 migrate-to-kts 和 https://docs.gradle.org/current/userguide/kotlin_dsl.html  gradle官方文档kotlin_dsl 看了之后是不是感觉好像无从下手? 先别急,如果是现有项目,要改造,请记得先起个分支再继续。

首先在项目根目录下新建个文件夹buildSrc,然后在buildSrc里新建一个build.gradle.kts文件,文件内容如下

plugins {`kotlin-dsl`}

repositories {mavenCentral()}

然后Sync一下项目,等结束了在这个文件夹下新建几个类用来统一管理app和lib下面build.gradle.kts中的引用,这样你的gradle清单文件会看起来清爽很多。在这里我要说的是有一些在文档里不好找的内容,当然借助百度或Google我相信你也能慢慢摸索出这些,但是喂到嘴边的东西它不香嘛,干嘛费那个功夫呢,你说是不是。然后我们要改造的就是settings.gradle.kts文件了,直接重命名或删除原来的settings.gradle新建settings.gradle.kts都行,直接贴代码

pluginManagement {

repositories {

    gradlePluginPortal()

    google()

    mavenCentral()

  }                   

dependencyResolutionManagement {

    google()

    mavenCentral()

}

    rootProject.name = "xxx" //项目名称<br>

include(":app")//主包名<br>

include(":xxx")//lib或model名

这里我先引一个概念Maven BOM,可能有些人已经接触过它了,真香定律永远适用。它通过定义一整套相互兼容的jar包版本集合,使用时只需要依赖该BOM文件,即可放心的使用需要的依赖jar包,且无需再指定版本号,用它最大的好处是可以解决依赖冲突。如果你的项目中使用了Google Service和Firebase, 请参考https://firebase.google.com/docs/android/setup  将 Firebase 添加到您的 Android 项目,你看,Bom使用是不是和平时的依赖一样too Simple too Easy!

    但是,假如你想用一个非RELEASE版本的SNAPSHOT,该如何操作呢?且看Google官方的Demo是如何操作的,这里以 https://github.com/android/compose-samples Jetpack Compose 为例,就是要在settings的dependencyResolutionManagement里新加对应的maven即可,先定义snapshot的版本,然后在repositories中新加maven

val snapshotVersion : String? = System.getenv("COMPOSE_SNAPSHOT_ID")

    snapshotVersion?.let {

            maven { url =uri("https://androidx.dev/snapshots/builds/$it/artifacts/repository/") }

    }

如果你对Gradle的了解更多一点,或许就不会像我之前那样走更多的弯路,定义一堆的类在gradle.kts文件中引用了,因为gradle会替你完成这项目工作,具体怎么做Google的Sample里已经给出了示例,你只需要依葫芦画瓢就行,难度几乎为0!你可以在demo的gradle文件夹下找到 https://github.com/android/compose-samples/blob/main/Crane/gradle/libs.versions.toml 文件,并查看它在项目中两个gradle.kts文件中是如何引用的,至于ndk的引用也比较简单

ndk {

        abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")

    }

    还在等什么? 不搞个Demo试试么!

 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容