Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 要在Maven central中发布,是否需要使用PGP签名对JAR文件进行签名?_Java_Maven_Gradle_Jar_Jar Signing - Fatal编程技术网

Java 要在Maven central中发布,是否需要使用PGP签名对JAR文件进行签名?

Java 要在Maven central中发布,是否需要使用PGP签名对JAR文件进行签名?,java,maven,gradle,jar,jar-signing,Java,Maven,Gradle,Jar,Jar Signing,我有一个简单的JAVA应用程序,我喜欢在中发布我的JAR。在查看整个过程时,提到我的JAR需要使用PGP签名进行签名 文档提到,为了保证他们下载的是原始工件,我们必须签名。如果是这样的话,有没有办法在maven central中上传JAR文件,而无需为上传而进行测试签名 另外,我的JAR是用代码签名证书签名的。我真的需要这个PGP签名?因为,证书本身确认它来自受信任的源。我们真的需要这个额外的PGP签名吗?如果是的话,有人能解释一下吗 如果您有任何在maven central发布的解决方案而无

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

文档提到,为了保证他们下载的是原始工件,我们必须签名。如果是这样的话,有没有办法在maven central中上传JAR文件,而无需为上传而进行测试签名

另外,我的JAR是用代码签名证书签名的。我真的需要这个PGP签名?因为,证书本身确认它来自受信任的源。我们真的需要这个额外的PGP签名吗?如果是的话,有人能解释一下吗

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


注意:使用gradle作为构建工具在maven central中发布JAR。是的。这是必要的,因为这是他们的政策


对于小型开源开发人员来说,最简单的方法可能是注册,以便在初始注册后随时可以推送。

是。这是一项严格的要求。没有其他解决方案。
你是否与其他人签约并不重要。它必须是PGP,实际上您必须将公钥分发/发布到公钥服务器中。Maven Central需要从多个密钥服务器中的一个提取您的公钥。
检查此链接:

出于测试目的,您可以使用
gradlew publishtoavenlocal
,它将在本地计算机上“安装”您的库。通常,此回购位于
%HOME%\.m2\repository
。在这种情况下,你不需要签署任何东西。这非常简单,一切都应该像您的库被上传到集中的repo一样工作

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

build.gradle

repositories {
    mavenLocal()
    mavenCentral()
    jcenter()
}
还有maven repo
jcenter
,可以在没有pgp签名的情况下上传到其中

最后,我听说了一个私有的据说是免费的maven存储库,名为repsy。我从来没有试过,但我想你不需要在那里注册艺术品。可能对测试有用