發佈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中同時存在。具體邏輯就不管了,老子是來上傳開源插件的。