Я использую следующий gradle для создания типа сборки снимка с именем файла, включающим текущий хеш коммита и "SNAPSHOT" в качестве суффикса:
def libraryGroupId = 'my.group.id'
def libraryVersion = '1.7.2'
def libraryArtifactId = 'core'
android {
defaultConfig {
versionName libraryVersion
}
buildTypes {
debug {
versionNameSuffix '-debug'
}
snapshot {
versionNameSuffix '-SNAPSHOT-' + getCommitHash()
}
}
libraryVariants.all { variant ->
variant.outputs.all {
def versionName = variant.variantData.variantConfiguration.versionName
outputFileName = "${libraryArtifactId}-" + versionName + ".aar"
}
}
}
Кроме того, у меня есть задача публикации артефактов:
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version libraryVersion
artifactId libraryArtifactId
def artifactUrl = "$buildDir/outputs/aar/<??outputFileName??>"
println "#### artifactUrl: " + artifactUrl
artifact(artifactUrl)
pom.withXml {
...
}
}
}
}
Прямо сейчас «outputFileName» всегда устанавливается в последний определенный тип сборки, так как option.outputs.all переопределяет его для каждого типа сборки. Итак, мой вопрос:
Как получить outputFileName
моей текущей сборки в закрытии публикации artifactory
?
Любой другой способ приветствуется. Это не должно быть через самоопределяемую переменную. Но artifactoryUrl должен совпадать с сгенерированным /outputs/aar/<snapshot-filename>.aar
.