settings.gradle.kts里读取properties配置文件或者解析json文件

settings.gradle.kts里进行配置读取可进行动态控制 include 再结合 plugin+includeBuild方式可实现远程依赖和本地module的动态切换

读取配置test.properties

  • 创建一个test.properties

  • 编写配置内容

    EVN_TYPE = Debug
    APP_VERSION_NAME = 12
    APP_VERSION_CODE = 1
    
  • settings.gradle.kts里实现如下代码

    val config = groovy.util.ConfigSlurper().parse(File("${rootProject.projectDir.path}/test.properties").toURL())
    config.entries.joinToString(separator = ";") { "${it.toString()}" }.let {
        println("config path:${rootProject.projectDir.path}")
        println("config:$it")
    }
    config.forEach {entry->
        (entry.value as? Boolean)?.let {
            if (it){
                (entry.key as? String)?.let {
                    include(it.replace("__",":").also {
                        println("config include-> $it")
                    })
                }
            }
        }
    }
    
    

解析json文件

  • 创建配置文件test.json

    [{
    "name":"木木"
    },
    {
    "name":"木夕"
    }
    ]
    
  • settings.gradle.kts里实现如下代码

    
    val configPath = "${rootProject.projectDir.path}/moduleInfo.json"
    println("读取module配置:${configPath}")
    val configString = File(configPath).readText()
    
    val jsonArray = JsonSlurper().parseText(configString) as ArrayList<Map<String,Any>>
    jsonArray.forEach { element ->
        if(element["enableLocal"] == true){
            include(element["localName"].toString().also {
                println("config include-> $it")
            })
        }
    }
    
    
  • json解析会将对象转为map,取值时使用map的操作进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林深人不知

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值