上傳項(xiàng)目到Maven中央倉庫

編者按

???????? 筆者最近在github上開源了一個Excel格式文件解析工具 excel2javaBean , 應(yīng)要求上傳項(xiàng)目到Maven倉庫罐孝。其中坎坷不表, 現(xiàn)記錄上傳過程以供未來查閱。


目錄

一井誉、 注冊 Sonatype JIRA 用戶并創(chuàng)建工單
二贡歧、 安裝 GPG 并生成密鑰
三、 配置項(xiàng)目pom.xml和本地Maven setting.xml
四探膊、 部署杠愧、發(fā)布和查看

一、 注冊 Sonatype JIRA 用戶并創(chuàng)建工單

登陸Sonatype JIRA并注冊用戶

JIRA 用戶名和密碼后面(3.2)會用到

1.1 創(chuàng)建工單

創(chuàng)建工單

最終點(diǎn)擊 Create 按鈕創(chuàng)建工單

對于第四步逞壁,雖然在創(chuàng)建Maven項(xiàng)目時可以隨意寫Group Id流济,但最好使用真實(shí)擁有的域名或推薦的com.github.[github用戶名]格式域名。

1.2 等待管理員回復(fù)

等待管理員回復(fù)

即使Group Id對應(yīng)的域名屬于你腌闯,也可能會質(zhì)詢绳瘟,回復(fù)擁有即可。由于我確實(shí)沒有申請域名guojy.com姿骏,所以選擇變更糖声。

變更域名并獲得相關(guān)地址

二、 安裝 GPG 并通過命令生成密鑰

2.1 下載并安裝GPG并驗(yàn)證命令可用 windows版下載鏈接

根據(jù)操作系統(tǒng)類型下載相應(yīng)的GPG安裝包

gpg --version

2.2 生成密鑰并上傳公鑰到服務(wù)器

gpg --gen-key

彈出窗口要求輸入的密語要記得, 后面(4.1)會用到

gpg --gen-key2
gpg --keyserver

三姨丈、 配置項(xiàng)目pom.xml和本地 Maven setting.xml

3.1 配置項(xiàng)目的pom.xml文件

    <!--這里以spring-cloud-gray為例-->
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <scm>
        <tag>master</tag>
        <url>git@github.com:SpringCloud/spring-cloud-gray.git</url>
        <connection>scm:git:git@github.com:SpringCloud/spring-cloud-gray.git</connection>
        <developerConnection>scm:git:git@github.com:SpringCloud/spring-cloud-gray.git</developerConnection>
    </scm>

    <developers>
        <developer>
            <name>saleson</name>
            <email>qlichunyu@163.com</email>
            <organization>Spring Cloud中國社區(qū)</organization>
        </developer>
    </developers>

    <profiles>
        <profile>
            <id>sonatype-oss-release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>2.2.1</version>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.9.1</version>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.1</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>

            <distributionManagement>
                <snapshotRepository>
                    <!--對應(yīng)setting.xml servers.server.id-->
                    <id>sonatype-nexus-snapshots</id>
                    <url>
                        https://oss.sonatype.org/content/repositories/snapshots
                    </url>
                </snapshotRepository>
                <repository>
                    <!--對應(yīng)setting.xml servers.server.id-->
                    <id>sonatype-nexus-staging</id>
                    <url>
                        https://oss.sonatype.org/service/local/staging/deploy/maven2
                    </url>
                </repository>
            </distributionManagement>
        </profile>
    </profiles>

maven-gpg-plugin如果不易自動下載可以選擇使用命令 mvn dependency:get -DrepoUrl=http://repo.maven.apache.org/maven2/ -Dartifact=org.apache.maven.plugins:maven-gpg-plugin:1.1 手動下載畅卓。

3.2 配置本地maven的setting.xml文件

  <servers>
    <server>
      <id>sonatype-nexus-snapshots</id>
      <username>JIRA 用戶名</username>
      <password>JIRA 用戶密碼</password>
    </server>
    <server>
      <id>sonatype-nexus-staging</id>
      <username>JIRA 用戶名</username>
      <password>JIRA 用戶密碼</password>
    </server>
  </servers>

四、 部署蟋恬、發(fā)布翁潘、通知審批和查看

4.1 部署

mvn clean deploy -P -sonatype-oss-release -Darguments="gpg.passphrase=密語" -Dmaven.test.skip=true

命令執(zhí)行的過程中會要求在命令行和彈出框中輸入密語,輸入即可歼争;gpg會報(bào)warn拜马,直接忽略;到deploy階段沐绒,會上傳不少文件俩莽,耐心等待即可。

4.2 發(fā)布

登陸nexus

nexus登陸地址乔遮,這里的用戶名和密碼和登陸jira的一樣扮超。

點(diǎn)擊close后填寫備注信息

release.JPG

4.3 通知審批

首次上傳通知審批.JPG

收到回復(fù)后等待10分鐘左右即可完成同步Maven中央庫,同步到search.maven.org則需要2小時以上蹋肮;這一步只在首次部署發(fā)布時進(jìn)行出刷,之后的部署發(fā)布只需完成到4.2即可到4.4查看。

4.4 查看

release完成后可以查看上傳結(jié)果

在maven中央倉庫中查看上傳結(jié)果

在search.maven.org上查看上傳結(jié)果

引用

1. 發(fā)布jar包到maven中央庫

2. 將項(xiàng)目發(fā)布到 maven 中央倉庫踩過的坑

3. GPG入門

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末坯辩,一起剝皮案震驚了整個濱河市馁龟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌漆魔,老刑警劉巖坷檩,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異改抡,居然都是意外死亡矢炼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門雀摘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來裸删,“玉大人,你說我怎么就攤上這事阵赠⊙乃” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵清蚀,是天一觀的道長匕荸。 經(jīng)常有香客問我,道長枷邪,這世上最難降的妖魔是什么榛搔? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上践惑,老公的妹妹穿的比我還像新娘腹泌。我一直安慰自己,他們只是感情好尔觉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布凉袱。 她就那樣靜靜地躺著,像睡著了一般侦铜。 火紅的嫁衣襯著肌膚如雪专甩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天钉稍,我揣著相機(jī)與錄音涤躲,去河邊找鬼。 笑死贡未,一個胖子當(dāng)著我的面吹牛种樱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播俊卤,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缸托,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瘾蛋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤矫限,失蹤者是張志新(化名)和其女友劉穎哺哼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叼风,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡取董,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了无宿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茵汰。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖孽鸡,靈堂內(nèi)的尸體忽然破棺而出蹂午,到底是詐尸還是另有隱情,我是刑警寧澤彬碱,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布豆胸,位于F島的核電站,受9級特大地震影響巷疼,放射性物質(zhì)發(fā)生泄漏晚胡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望估盘。 院中可真熱鬧瓷患,春花似錦、人聲如沸遣妥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽燥透。三九已至沙咏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間班套,已是汗流浹背肢藐。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吱韭,地道東北人吆豹。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像理盆,于是被迫代替她去往敵國和親痘煤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354