gpt4 book ai didi

android - 在Gradle 5中使用Maven publish plugin for Android项目

转载 作者:太空狗 更新时间:2023-10-29 14:37:29 25 4
gpt4 key购买 nike

我正在尝试构建一个脚本,以使用“maven-publish”插件将 APK Artifact 发布到 Nexus。在 Gradle 4 中,可以有这样的配置(这可行):

apply plugin: 'maven-publish'

publishing {
repositories {
maven {
url "https://$MY_NEXUS_SERVER$/repository/${project.version.endsWith('-SNAPSHOT') ? 'snapshots' : 'releases'}"
credentials {
username mavenUser
password mavenPassword
}
}
publications {
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
if (variant.name == "release") {
create("apk${variant.name.capitalize()}", MavenPublication) {
groupId project.group
artifactId project.name
version project.version

artifact(output.outputFile)
}
}
}
}
}
}
}

在 Gradle 5 中 this is no longer possible

尝试构建项目时出现此错误:

Cannot create a Publication named 'android' because this container does not support creating elements by name alone. Please specify which subtype of Publication to create. Known subtypes are: MavenPublication

如何重写此代码以与 Gradle 5 兼容?

最佳答案

构建任意变体的另一个选项(在 Gradle 5.5.1/Android Gradle 3.5.0 上测试):

apply plugin: 'maven-publish'

publishing {
repositories {
maven {
url "https://$MY_NEXUS_SERVER$/repository/${project.version.endsWith('-SNAPSHOT') ? 'snapshots' : 'releases'}"
credentials {
username mavenUser
password mavenPassword
}
}
publications {
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
"maven${variant.name.capitalize()}Apk"(MavenPublication) {
groupId project.group
artifactId project.name
version project.version

artifact(output.outputFile)
}
}
}
}
}
}

使用调试变体构建时生成的发布任务示例:publishMavenDebugApkPublicationToMavenRepository

关于android - 在Gradle 5中使用Maven publish plugin for Android项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53666554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com