繁体   English   中英

如何 GPG 签名并将 aar 直接发布到 Maven Central?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM