获取 ArtifactoryPublication 的 BuildType VersionName
Get BuildType VersionName for ArtifactoryPublication
我正在使用以下 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" 总是设置为最后定义的构建类型,因为 variant.outputs.all 正在为每个构建类型覆盖它。所以我的问题是:
如何在 artifactory
发布关闭期间获取我当前构建的 outputFileName
?
欢迎任何其他方式。它不必通过自定义变量。但是 artifactoryUrl 应该与生成的 /outputs/aar/<snapshot-filename>.aar
.
匹配
您可以为每个 buildVariant 生成发布任务。
publishing {
publications {
android.libraryVariants.all { variant ->
"aar${variant.name.capitalize()}"(MavenPublication) {
def versionName = variant.variantData.variantConfiguration.versionName
artifact("$buildDir/outputs/aar/${libraryArtifactId}-${versionName}.aar")
}
}
}
}
然后调用正确的任务 - 它应该类似于 publishAarSnapshotPublicationToMavenRepository
我正在使用以下 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" 总是设置为最后定义的构建类型,因为 variant.outputs.all 正在为每个构建类型覆盖它。所以我的问题是:
如何在 artifactory
发布关闭期间获取我当前构建的 outputFileName
?
欢迎任何其他方式。它不必通过自定义变量。但是 artifactoryUrl 应该与生成的 /outputs/aar/<snapshot-filename>.aar
.
您可以为每个 buildVariant 生成发布任务。
publishing {
publications {
android.libraryVariants.all { variant ->
"aar${variant.name.capitalize()}"(MavenPublication) {
def versionName = variant.variantData.variantConfiguration.versionName
artifact("$buildDir/outputs/aar/${libraryArtifactId}-${versionName}.aar")
}
}
}
}
然后调用正确的任务 - 它应该类似于 publishAarSnapshotPublicationToMavenRepository