gradle动态配置打包发布maven库

主项目的域名配置在gradle.properties文件中添加
ServerApi=\"https\://xxx.xxx.com:8888/"
项目中的build.gridle配置
buildscript {

    repositories {
        maven{url "http://11.11.11.11:8080/repository/maven-releases/"}
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
    }
}

allprojects {
    repositories {
        maven{url "http://11.11.11.11:8080/repository/maven-releases/"}

        google()
        jcenter()

    }
}
插件中的build.gridle配置
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
def versionDefualt = '1.0'
android {
  ...
  ...
  android.libraryVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "xxx_"  + defaultConfig.versionName +
                ".aar"
    }
}

publishing {
    publications {
        publications(MavenPublication) {
            groupId = "service"
            artifactId = "xxx"
            version = versionDefualt
            artifact "build/outputs/aar/xxx_" + version + ".aar"
        }
    }
    repositories {
        maven {
            url = "http://11.11.11.11:8080/repository/maven-releases/"
            credentials {
                username = "xxx"
                password = "xxx"
            }
        }
    }
}

主工程引用方式

build.gradle配置

apply plugin: 'com.android.application' android {
...
...

productFlavors {
    publicStream1 {
        buildConfigField "String", "ENVIRONMENT", '"publicStream1"'
        manifestPlaceholders = [ENVIRONMENT: "publicStream1"]
    }
    privateStream {
        buildConfigField "String", "ENVIRONMENT", '"privateStream"'
        manifestPlaceholders = [ENVIRONMENT: "privateStream"]
    }
}
sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
        res.srcDirs = ['src/main/res']
    }
}
buildTypes {
    debug {
        //ServerApi为动态配置的服务器地址
        buildConfigField "String", "ServerApi", ServerApi.toString()
        minifyEnabled false
        signingConfig signingConfigs.release
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    release {
        buildConfigField "String", "ServerApi", ServerApi.toString()
        lintOptions {
            checkReleaseBuilds false
            abortOnError false
        }
        signingConfig signingConfigs.release
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

  android.applicationVariants.all { variant -> variant.outputs.all { outputFileName = "app_" + "${defaultConfig.versionName}_" + getCurrentFlavor() + "_${releaseTime()}.apk" } }

def releaseTime() {
    return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
// 取出当前选择的渠道名
def getCurrentFlavor() {
    println "************platform*************"
    Gradle gradle = getGradle()
    def parameter = gradle.getStartParameter()
    println "StartParameter = $parameter"
    List<String> names = parameter.getTaskNames()
    println "TaskNames = $names"
    if (names.size() > 0) {
        String taskStr = names.get(0)
        println "TestName =" + taskStr
        if (taskStr.size() >= 13) {
            return taskStr.substring(13, taskStr.size())
        }
        return taskStr
    }
    return ""
}

dependencies {
    implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
//    implementation 'service:xxx:1.0@aar'

    implementation project(path: ':xxx')

}

settings.gradle配置

include ':xxx'
project(':xxx').projectDir= new File("../xxx")

混淆参考:

写好的混淆规则proguard-rules.pro_csdnwr的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值