發佈Maven構件到中央倉庫 和那些經歷過的坑

發佈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入門教程 它讓我從衆多攻略的坑中找到了一絲曙光

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章