1. 程式人生 > >用 Eclipse 自帶的 Maven 釋出到中央庫

用 Eclipse 自帶的 Maven 釋出到中央庫

1、註冊 Sonatype OSSRH
例如我的是這樣的。注意密碼稍後要放在 XML 中,所以特殊字元不要使用 &(需要轉義),用 @ 就好。
2、填寫工單
寫好之後有工作人員問你是否擁有該域名,你回答 yes 即可
3、完善 pom.xml
把你要分享的專案的 pom.xml 有關資訊完善,然後加入一堆 外掛(參考官方文件)
4、修改 maven 配置
為了省事,使用 eclipse 自帶的 maven。但是沒有 settings.xml,沒關係啊,官網下一個 maven,把裡面的 setting.xml 複製到 .m2 下面。新增下面的節點

<server
>
<id>ossrh</id> <username>sp42(OSSRH 賬號)</username> <password>OSSRH 密碼</password> </server>

5、加密
下載 gpg,生成 Passphase,上傳。
需要在.gnup資料夾下增加兩個配置,mac下在~/.gnup下增加gpg.conf和gpg-agent.conf兩個資料夾,其中分別在gpg-agent.conf中新增allow-loopback-pinentry,在gpg.conf新增use-agent
pinentry-mode loopback
6、執行 maven
因為使用 eclipse 自帶的緣故,所以會找不到相關環境變數。好在可以手動新增,
JAVA_HOME –》/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
PATH–》/usr/local/bin

Maven 問題備忘

  • 出現 “Updating status for Tomcat v6.0 Server at localhost…”. java.lang.NullPointerException 原來是 maven 依賴本地包有問題,把本地包去掉就正常,但這不合理。然後發現其實工程目錄結構問題。蓋因沒用 meavn 之前一直都是 eclipse 預設的 WebContent 目錄,轉為 meavn 目錄懶得轉過來,而且在沒有做工程聚合的時候也是正常的,後來新增聚合,就發生這莫名其妙 tomcat 問題,後來改為 meavn 推薦的目錄,就ok了

今日遇到幾個問題

1、GPG 證書。原先是在 Mac 搞的,後來換到 win 上,就要匯出私鑰證書,匯出私鑰:gpg -o 私鑰檔名 –export-secret-keys 使用者名稱。然後在 win 下面匯入即可
這裡寫圖片描述


2、上傳成功了但最後 close 時顯示規則不通過,可能是你的 pom.xml 缺少某些欄位,如

<url>http:// </url>

3、最後 close 問題
不知道什麼問題,應該是 Maven Nexus 後臺問題,上傳成功了很久才能 close,以至本地認為超時。其實後臺是可以跑完成功的,只是很慢。
4、最後找到原因了,是我設定了 Maven 父專案,父專案在本地,沒有提交中央庫,後臺解析 pom.xml 找不到父專案失敗!

可以在網頁觀察上傳進度。
這裡寫圖片描述

這裡寫圖片描述

Javadoc @ JDK1.8 問題

忽略就可以了。發現 外掛 版本不能太新,3.0.1不行,改 2.9.1就行

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.10.2</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration> <!-- add this to disable checking -->
                <additionalparam>-Xdoclint:none</additionalparam>
            </configuration>
        </execution>
    </executions>
</plugin>