簡體   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