[英]Publish an aar file to Maven Central with Gradle not working
[英]How to GPG sign and publish an aar directly to Maven Central?
我正在正确设置我的 Gradle 脚本以将.aar
直接发布到 Maven Central (使用JFrog 关闭 Bintray ,有关发布到 Bintray 的大量资源不再相关)。 先决条件之一是将所有工件(aar,源 jar,java-doc jar,pom.xml)与相应的 GPG 签名文件(例如sources.jar.asc
)一起上传
遵循这两个指南(非常相似),我在很大程度上设法做到了:
然而,虽然很好地描述了使用 Gradle 的解决方案,但两个指南似乎都关注plain.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!... :-/
}
我什至尝试注册 output .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'
我正在寻找一种稳定的、防弹的解决方案,可以端到端地解决这个问题,没有片状错误。
作为一种解决方案,我发现将生成.aar
的任务注册为项目存档——而不是注册文件本身,就可以解决问题(就像对源代码和 javadoc jar 所做的那样):
publications {
android.libraryVariants.all { variant ->
if (shouldPublishVariant(variant)) {
// ...
// ...
variant.outputs.forEach { output ->
project.artifacts {
// For example: bundleProdReleaseAar is the task that generates library-prod-release.aar
archives project.tasks["bundle${variant.name.capitalize()}Aar"]
}
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.