【发布时间】:2021-06-08 05:42:24
【问题描述】:
我正在正确设置我的 Gradle 脚本以将 .aar直接发布到 Maven Central(使用 JFrog sunsetting Bintray,关于发布到 Bintray 的大量资源不再相关)。先决条件之一是将所有工件(aar、源 jar、java-doc jar、pom.xml)与相应的 GPG 签名文件(例如sources.jar.asc)一起上传。
按照这两个指南(非常相似),我在很大程度上设法做到了:
- https://medium.com/@nmauti/sign-and-publish-on-maven-central-a-project-with-the-new-maven-publish-gradle-plugin-22a72a4bfd4b
- https://www.albertgao.xyz/2018/01/18/how-to-publish-artifact-to-maven-central-via-gradle/
但是,尽管使用 Gradle 很好地描述了解决方案,但两个指南似乎都侧重于普通的 .jar 而不是 .aar。特别是,我不确定要设置什么作为项目存档,以便按照建议放在自动签名+发布列表中:
project.artifacts {
archives sourceJar // Ok, I have a sourceJar task - will be signed and uploaded
archives javadocJar // I use Dokka, but got that to work by registering my dokka task
archives jar // What's "jar"? this doesn't help much!... :-/
}
我什至尝试过显式注册输出 .aar 文件:
publications {
android.libraryVariants.all { variant ->
if (shouldPublishVariant(variant)) {
// ...
// ...
variant.outputs.forEach { output ->
project.artifacts {
archives output.outputFile // The full path of the .aar to publish!
}
}
}
}
}
但这似乎导致了这个片状错误:
Execution failed for task ':detox:publishMavenFullReleaseAarPublicationToMavenRepository'.
> Failed to publish publication 'mavenFullReleaseAar' to repository 'maven'
> Invalid publication 'mavenFullReleaseAar': artifact file does not exist: '.../build/outputs/aar/library-full-release.aar.asc'
我正在寻找一种稳定的、防弹的解决方案,可以端到端地解决这个问题,没有片状错误。
【问题讨论】:
标签: android maven gradle aar bintray