基于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....