【问题标题】:Is it necessary to sign JAR file with PGP signature to publish in Maven central?是否需要使用 PGP 签名签署 JAR 文件才能在 Maven 中心发布?
【发布时间】:2020-06-29 06:47:09
【问题描述】:

我有一个简单的 JAVA 应用程序,我喜欢在 maven central repository 中发布我的 JAR。在查看程序时,提到我的 JAR 需要使用 PGP 签名。

https://maven.apache.org/repository/guide-central-repository-upload.html

文档提到为了保证他们下载的是原始工件,我们必须签名。如果是这种情况,是否有任何方法可以在 maven Central 中上传 JAR 文件而无需签名以进行上传测试?

另外,我的 JAR 使用代码签名证书进行签名。那么,我真的需要这个 PGP 签名吗?因为,带有证书的Signing the JAR 本身确认它来自受信任的来源。我们真的需要这个额外的 PGP 签名吗?如果是这样,任何人都可以解释这一点。

如果有任何无需签名即可在 maven Central 中发布的解决方案,我将不胜感激。请在这方面给我建议

注意:使用 gradle 作为构建工具在 maven Central 中发布 JAR。

【问题讨论】:

    标签: java maven gradle jar jar-signing


    【解决方案1】:

    是的,你知道。这是必要的,因为这是他们的政策。

    对于小型开源开发人员来说,最简单的做法可能是注册https://central.sonatype.org/pages/ossrh-guide.html,这样您就可以在初始注册后随时推送。

    【讨论】:

      【解决方案2】:

      是的。这是一个严格的要求。没有其他解决方案。
      与其他人签署并不重要。它必须是 PGP,实际上您必须将公钥分发/发布到 public 密钥服务器。 Maven Central 将需要从多个密钥服务器之一中提取您的公钥。
      检查此链接:https://central.sonatype.org/publish/requirements/gpg/

      出于测试目的,您可以使用gradlew publishToMavenLocal,它将在您的本地计算机上“安装”您的库。通常这个 repo 在%HOME%\.m2\repository。在这种情况下,您无需签署任何内容。这很简单,一切都应该像您的库已上传到集中式存储库一样工作。

      然后,在导入库进行测试的项目中,只需确保将 maven 存储库 mavenLocal() 与其他集中式存储库一起包含:

      build.gradle

      repositories {
          mavenLocal()
          mavenCentral()
          jcenter()
      }
      

      还有 maven repo jcenter 可以在没有 pgp 签名的情况下上传。

      最后,我听说了这个私有且据称是免费的 maven 存储库,名为 repsy https://repsy.io/。我从未尝试过,但我想你不需要在那里注册人工制品。可能对测试有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-09
        • 1970-01-01
        • 2019-08-19
        相关资源
        最近更新 更多