nginx根据参数转发到不同服务器_Gradle根据参数配置不同的依赖

本文介绍了如何通过Gradle脚本控制上传Maven依赖的开关,并展示了如何在不同模块中灵活配置依赖于上传Maven版本还是本地。关键在于全局变量设置和条件化的依赖声明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

858d2b03c39bac6b1244e6a2bc408798.png

场景:默认情况下依赖本地Module,发布Maven时使用Maven依赖及特定的版本号

一、确定控制变量

如:uploadMaven 代表发布Maven

使用下面的指令的编译:

./gradlew :bigclass:assembleRelease --stacktrace -PuploadMaven=true


完整的发布脚本如下(不包含Maven配置哦):

#!/usr/bin/env bash
./gradlew clean --stacktrace -PuploadMaven=true
# upload to Nexus3
#./gradlew :bigclass:uploadArchives
# upload to Artifactory
./gradlew :bigclass:assembleRelease --stacktrace -PuploadMaven=true
./gradlew :bigclass:generatePomFileForAarPublication --stacktrace -PuploadMaven=true
./gradlew :bigclass:artifactoryPublish --stacktrace -PuploadMaven=true

ok,后面发布Maven的编译就使用上面的指令或脚本就行了,本质是Gradle命令携带 uploadMaven 参数

二、配置Gradle全局变量

在项目根目录的 build.gradle 中配置全局变量: isUploadMaven、publishVersion

def uploadMavenValue = project.hasProperty('uploadMaven') ? uploadMaven : "false"
ext {
    isUploadMaven = "$uploadMavenValue"
    publishVersion = "4.8.148"
}

∆ 题外话

当然如过你在项目中使用了常规的版本管理Gradle脚本(version.cfg、version-manager.gradle)也可以直接使用已存在的全局版本号变量:configVersionName 来代替 publishVersion

0ea7d73611e336c1edefec828b9e9a9d.png

ok,后面所有Module的gradle中都可以使用 isUploadMaven、publishVersion 来管理依赖配置了。

三、根据全局变量来配置依赖

在Module的build.gradle中配置依赖吧:

dependencies {
    implementation 'com.android.support:appcompat-v7:26.0.2'
    implementation 'com.android.support:design:26.0.2'

    if ("${rootProject.ext.isUploadMaven}" == ("false")) {
        api project(':baselib.commLib')
        implementation project(':baselib.baseLib')
        implementation project(':lib.cloudRoom')
        implementation project(':lib.cloudRoomBase')
    } else {
        api "com.yimi.room.sdk:commLib:${rootProject.ext.publishVersion}"
        implementation "com.yimi.room.sdk:baseLib${rootProject.ext.publishVersion}"
        implementation "com.yimi.room.sdk:cloudRoom:${rootProject.ext.publishVersion}"
        implementation "com.yimi.room.sdk:cloudRoomBase:${rootProject.ext.publishVersion}"
    }
}

or:

dependencies {
    implementation 'com.android.support:appcompat-v7:26.0.2'
    implementation 'com.android.support:design:26.0.2'

    if ("${rootProject.ext.isUploadMaven}" == ("false")) {
        api project(':baselib.commLib')
        implementation project(':baselib.baseLib')
        implementation project(':lib.cloudRoom')
        implementation project(':lib.cloudRoomBase')
    } else {
        api "com.yimi.room.sdk:commLib:$configVersionName"
        implementation "com.yimi.room.sdk:baseLib:$configVersionName"
        implementation "com.yimi.room.sdk:cloudRoom:$configVersionName"
        implementation "com.yimi.room.sdk:cloudRoomBase:$configVersionName"
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值