将多个productFlavors和buildTypes发布到Artifactory

时间:2017-11-08 19:04:59

标签: android gradle android-gradle

基于buildTypes将多个Flavor发布到artifactory的最佳方法是什么?

基本上在项目中我有3个buildsTypes(dev,stage和production)和2个productFlavors(androidPublic和androidPrivate),我想发布到Artifactory

我正在使用gitlabci来构建我的android项目,我基本上有3个主要阶段:构建,测试(单元和函数),发布。如果构建阶段与发布阶段不同,即当我处于发布阶段时,我的脚本gradle应该考虑已经生成了工件。

示例:我构建 dev并生成两个包

- app-androidprivate-dev.apk

- app-androidpublic-dev.apk

我想将两个发送到舞台发布上的神器。

我的build.gradle的一个简短示例:

apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.artifactory'

buildscript {
    dependencies {
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.4.12"        
    }
}

publishing {
    publications {
        android.applicationVariants.all { variant ->
            variant.outputs.each { output -> 
                create("${variant.name.capitalize()}Apk", MavenPublication) {
                    groupId "app.android"
                    artifactId "app-${output.baseName}"
                    version '1.0.0'

                    artifact(output.outputFile)
                }
            }
        }
    }
    repositories {
        maven {
            name 'artifactory'
            url "${ARTIFACTORY_URL}/apks"
            credentials {
                username = "${ARTIFACTORY_USER}"
                password = "${ARTIFACTORY_PWD}"
            }
        }
    }
}

在命令行上我运行:

# gradle publishAndroidPrivateDebugApkPublicationToArtifactoryRepository -P....
# gradle publishAndroidPublicDebugApkPublicationToArtifactoryRepository -P....

0 个答案:

没有答案