【问题标题】:How to GPG sign and publish an aar directly to Maven Central?如何 GPG 签署 aar 并将其直接发布到 Maven Central?
【发布时间】: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)一起上传。

按照这两个指南(非常相似),我在很大程度上设法做到了:

但是,尽管使用 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


    【解决方案1】:

    作为一种解决方案,我发现将生成 .aar任务 注册为项目存档 - 而不是注册文件本身,就可以解决问题(就像为源和javadoc jars):

    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"]
                  }
              }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-02
      • 2015-05-20
      • 2017-03-03
      • 1970-01-01
      • 2014-09-06
      • 2022-06-16
      • 2016-01-11
      • 2018-02-08
      • 2021-03-27
      相关资源
      最近更新 更多