发布Maven构件到中央仓库 和那些经历过的坑

来源:互联网 发布:网络娱乐注册送彩金 编辑:程序博客网 时间:2024/05/17 06:13

发布Maven构件到中央仓库

自己写一个开源的maven插件爽吧,发布出去怎么样,大体流程网上的攻略都差不多
可以参考这份 发布Maven构件到中央仓库

下面重点说说遇到的坑

第1个坎 GPG安装

Win10系统下安装攻略中提到的官方gpg4win会失败,下载无法安装被杀毒软件拦截了,具体原因不明,网上找了一个for windows store的WINGPG1.0, 终于安装成功

第2个坎 no tty

无法输出到tty,解决这个并不难,maven配置中加入参数即可,不清楚为什么攻略中其他人没碰到

<plugin>   <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-gpg-plugin</artifactId>    <version>1.6</version>    <executions>        <execution>            <phase>verify</phase>            <goals>                <goal>sign</goal>            </goals>            <configuration>                <gpgArguments>                    <gpgArgument>--no-tty</gpgArgument>                </gpgArguments>            </configuration>        </execution>    </executions></plugin>

第3个坎 no agent

这货足足困惑了我好久,直到发现这是一个exe文件,而我下载的WINGPG1.0里根本没有这个文件。于是继续谷歌之,查到有这么个工具 gnupg https://www.gnupg.org/ 也可以做打包工作. 下载安装,在其根路径下看到了这个gpg-agent.exe,把path默认设置的pub路径改为根路径即可访问。

回溯问题时想不起什么问题导致要改gpg.exe执行文件要改为gpg2.exe了,不改应该也是可行的,如果要用gpg2.exe可以在maven中加入如下内容

<profile>     <id>release</id>     <properties>        <gpg.executable>gpg2</gpg.executable>     </properties>     ...

第4个坎 no default secert key

回溯这个问题时推测本地产生这个问题的原因是从WINGPG换成gnupg造成的,前期在WINGPG下产生的key有信息丢失了,在调试的过程中gnupg下生成key以后,丢失了secert key。总之如果生成key以后 gpg2 –list-secret-keys 查看不到(注意如果参照攻略就统一用gpg,按我的设置就统一用gpg2),那么就需要再生成一个key.

第5个坎 私钥上传?

这个问题我也不很确定,既然本地需要有一个secret-key才能签名,https://oss.sonatype.org/ 上操作close这个步骤的时候为啥还需要在公共key pool里找这个key. 反正是开源的,我就把这个私钥也上传了,事实上这个后创建的私钥在gpg2 –list-secret-keys和gpg2 –list-keys中同时存在。具体逻辑就不管了,老子是来上传开源插件的。

最后感谢阮一峰的这篇 GPG入门教程 它让我从众多攻略的坑中找到了一丝曙光

0 0
原创粉丝点击