上传jar的流程参考下面几个博客:
https://blog.csdn.net/qq_38225558/article/details/94381467
https://www.jianshu.com/p/923913d904fb
但是就这样还是出了一堆错,这里记录一下。
一、setting.xml配置中添加节点信息
这里的Sonatype账号是账号,不是邮箱,如果填错了mvn clean deploy时jar上传中央仓库的会很慢,或者直接报401的错误。
<servers>
<!-- 上传jar包到maven中央仓库配置start -->
<server>
<id>ossrh</id>
<username>Sonatype账号</username>
<password>Sonatype密码</password>
</server>
<!-- 上传jar包到maven中央仓库配置end -->
</servers>
二、setting.xml配置中添加gpg信息
mvn clean deploy时报Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (default) on project xxxx: Exit code: 1 -> [Help 1]
错误
'gpg.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10.359 s
[INFO] Finished at: 2020-04-10T11:15:19+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (default) on project trace-spring-boot-starter: Exit code: 1 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
gpg.exe已经添加环境变量了,命令行可以运行,但是部署的时候找不到。
直接在setting.xml中配置gpg的绝对路径位置,就不会找不打了。
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.executable>C:\Users\Administrator\SoftWare\GnuPG\bin\gpg</gpg.executable>
<gpg.passphrase>你的gpg的Passphrase</gpg.passphrase>
</properties>
</profile>
再次运行mvn clean deploy时,弹出如下窗口说明正确。
三、nexus repository close failed
对于mvn clean deploy时报Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (default) on project xxxx: Exit code: 1 -> [Help 1]
错误。
网上有个点赞很多的解决方案是配置<pluginManagement></pluginManagement>
到maven插件的位置,但是这个方法只是不执行source、javadoc、gpg插件,能成功将jar deploy到Nexus Repository,但是在Nexus Repository进行close时会出现如下错误。
Event: Failed: Javadoc Validation
typeId javadoc-staging
Event: Failed: Signature Validation
typeId signature-staging
Event: Failed: Sources Validation
typeId sources-staging
Event: Close failed
找不到javadoc、source等错误。
mvn clean deploy时不能跳过source、javadoc、gpg插件。在个人的maven repository中要看到如下文件后缀的文件。
四、Event: Failed: Signature Validation
.jar、.jar.asc、pom、pom.asc、javadoc.jar、javadoc.jar.asc、source.jar、source.jar.asc都正确打包后。在nexus repository进行close时出现如下错误。
Event: Failed: Signature Validation
Friday, April 10, 2020 11:55:19 (GMT+0800)
typeId signature-staging
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://keyserver.ubuntu.com:11371/">http://keyserver.ubuntu.com:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://keys.openpgp.org:11371/">http://keys.openpgp.org:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://pool.sks-keyservers.net:11371/">http://pool.sks-keyservers.net:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://keyserver.ubuntu.com:11371/">http://keyserver.ubuntu.com:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://keys.openpgp.org:11371/">http://keys.openpgp.org:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://pool.sks-keyservers.net:11371/">http://pool.sks-keyservers.net:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://keyserver.ubuntu.com:11371/">http://keyserver.ubuntu.com:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://keys.openpgp.org:11371/">http://keys.openpgp.org:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://pool.sks-keyservers.net:11371/">http://pool.sks-keyservers.net:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://keyserver.ubuntu.com:11371/">http://keyserver.ubuntu.com:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://keys.openpgp.org:11371/">http://keys.openpgp.org:11371/</a>. Upload your public key and try the operation again.
failureMessage No public key: Key with id: (7c95ee78d7c7bc7) was not able to be located on <a href="http://pool.sks-keyservers.net:11371/">http://pool.sks-keyservers.net:11371/</a>. Upload your public key and try the operation again.
需要将公钥发布到 PGP 密钥服务器,两个密钥服务器都要发布,我只发布了一个,导致了错误。
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 公钥ID
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 公钥ID
查询公钥是否发布成功
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 公钥ID
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 公钥ID
公钥通过如下命令查询
gpg --list-keys
五、上传maven中央仓库成功
最终close成功😭
发布release版本😭
等待两个小时后,在maven中央仓库搜到了自己的写的jar😃