前言
最近重構(gòu)了一下自己的小玩意组橄,由于之前是存到第三方倉(cāng)庫(kù)中的jitpack.io
烙丛,假如要使用自己的庫(kù)則需要先在pom.xml
中添加第三方倉(cāng)庫(kù)后跳纳,才能在dependencies
中添加自己的依賴(lài)疟暖,比較麻煩紊搪。
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
而且我遇到了一個(gè)問(wèn)題蜜葱,在添加了第三方倉(cāng)庫(kù)的時(shí)候,在構(gòu)建項(xiàng)目的時(shí)候耀石,會(huì)把springframework的包也會(huì)重新下載一遍牵囤,十分久= =不知如何解決,所以更加迫使我想把自己的包存放到官方倉(cāng)庫(kù)中滞伟。然后就去搜了一下揭鳞,第一頁(yè)里10篇文章有8篇是一摸一樣的,有一些直接復(fù)制的里面圖片都403了然后就對(duì)著教程做梆奈,瘋狂出現(xiàn)奇奇怪怪的問(wèn)題野崇,然后就想起之前看到的一句話(huà)
教程里都不出現(xiàn)錯(cuò)誤的,順利的一匹
好久沒(méi)寫(xiě)文章了亩钟,所以就久違地寫(xiě)一篇文章來(lái)說(shuō)一說(shuō)吧乓梨。貫徹一下我的風(fēng)格,盡量寫(xiě)的詳細(xì)一點(diǎn)清酥。
但是扶镀,本人水平有限,對(duì)maven不是很熟悉焰轻,對(duì)于后續(xù)的pom.xml配置我也不是很懂為什么這么做臭觉,希望大家能教一下我
好,那就開(kāi)始吧鹦马。
步驟
- 到https://issues.sonatype.org注冊(cè)一個(gè)賬號(hào)
- 到上面的網(wǎng)站提交一個(gè)issue胧谈,等待處理
- 安裝gpg,(用于對(duì)jar進(jìn)行加密)上傳你的密鑰到服務(wù)器
- 修改maven的setting.xml
- 修改Pom.xml文件
- 使用maven打包你的項(xiàng)目
- 到https://oss.sonatype.org/處理你剛上傳的jar
- 到https://issues.sonatype.org找到你剛剛的issue荸频,關(guān)掉它
- 等待2小時(shí),然后就可以在https://search.maven.org/搜到你的依賴(lài)了
emmmmm確實(shí)是麻煩呢
1.注冊(cè)賬號(hào)
這個(gè)沒(méi)什么說(shuō)的就放個(gè)圖吧(這里的密碼要求麻煩的一匹
2.提交issue
當(dāng)你注冊(cè)完之后客冈,就可以登陸來(lái)到首頁(yè)旭从,跟著步驟走,提交你的issue
然后你可以查看你的issue,等待被處理和悦,由于我是在晚上近0點(diǎn)的時(shí)候提交的退疫,所以可能處理比較快(看別的博客說(shuō)是時(shí)差問(wèn)題,需要等工作人員上班的時(shí)候才會(huì)被處理掉
3.安裝gpg
gpg的話(huà)鸽素,可以到https://www.gpg4win.org/下載
安裝完之后就可以打開(kāi)你的cmd褒繁,輸入gpg,輸出下面的東西就安裝成功了
然后就可以創(chuàng)建你的key了(實(shí)在不知道怎么表述了
輸入你的realname(類(lèi)似于username吧)
輸入email
然后最后一部是讓你輸入passphrase
馍忽,就是密碼了棒坏,記著別忘了
然后輸入完passphrase后會(huì)給你輸出一串key,那個(gè)長(zhǎng)長(zhǎng)的就是了遭笋,如果不小心關(guān)了可以鍵入gpg --list-keys
輸出你的key
然后下一步就是將你的key發(fā)布到服務(wù)器(至于為什么需要這一步我就母雞了坝冕,有一些博文倒是沒(méi)看到這一步= =),可以輸入下面的命令
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys 你的key
然后再輸入命令查看是否發(fā)布成功了
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 你的key
然后如果運(yùn)氣好的話(huà)你大概能成功,反正我是沒(méi)有成功了反正我是result no data
不成功的話(huà)可以往下看這里的瓦呼,如果成功的話(huà)就跳過(guò)這一步吧喂窟。在你安裝完gpg的時(shí)候,你會(huì)發(fā)現(xiàn)多了一個(gè)這樣的界面央串,大概是gpg的ui版吧磨澡,上面會(huì)有你剛剛創(chuàng)建的賬戶(hù)
右鍵點(diǎn)擊你的賬戶(hù),選擇紅色框框框住的選項(xiàng)质和,繼續(xù)就行了
然后大概就成了
4. 修改你的setting.xml
修改maven的setting.xml,在conf文件夾里面
注意:找到你的系統(tǒng)變量配置的maven的路徑稳摄,修改那里的setting.xml
因?yàn)槲倚薷牧薸dea的那個(gè),折騰了我一晚上
在servers
標(biāo)簽下添加以下代碼
<server>
<id>oss</id>
<username>你在*步驟1*時(shí)候注冊(cè)的賬號(hào)</username>
<password>你在*步驟1*時(shí)候注冊(cè)的賬號(hào)的密碼</password>
</server>
5. 修改pom.xml
我把我自己的pom都發(fā)出來(lái)了侦另,dalao可以參考下哪些要的哪些不要的吧
據(jù)說(shuō)必須要添加以下的信息秩命,你可以根據(jù)你自己的信息修改
<groupId>com.github.echisan</groupId>
<artifactId>wpb4j</artifactId>
<version>2.0</version>
<name>wpb4j</name>
<description>a simple java api for weibo picture bed</description>
<url>https://github.com/echisan/wbp4j</url>
<packaging>jar</packaging>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<scm>
<url>scm:git:git@github.com:echisan/wbp4j.git</url>
<connection>scm:git:git@github.com:echisan/wbp4j.git</connection>
<developerConnection>git@github.com:echisan/wbp4j.git</developerConnection>
<tag>2.0</tag>
</scm>
<developers>
<developer>
<name>echisan</name>
</developer>
</developers>
然后添加一個(gè)profiles
,學(xué)藝不精不是很清楚這個(gè)profile是干嘛用的悯许,但是看到網(wǎng)上的是把plugin
放進(jìn)去了氯析,那我也直接復(fù)制粘貼了。担败。晚點(diǎn)惡補(bǔ)一下殿托,或者知道的可以說(shuō)一下干嘛用的
<profiles>
<profile>
<id>release</id> <!-- 這個(gè)id有用的霹菊,當(dāng)然也能自定義的吧 -->
<build>
<pluginManagement>
<!-- 這個(gè)pluginManagement里的是我一把梭復(fù)制的, 各位dalao懂的就自己按實(shí)際整把= =這里我實(shí)在不懂 -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
<!-- Source -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin> <!-- 這個(gè)是必須要的支竹,不如提交到官方倉(cāng)庫(kù)的時(shí)候會(huì)不通過(guò) -->
<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> <!-- 這個(gè)是必須要的旋廷,我就是因?yàn)槁┝诉@個(gè),折騰了好久 -->
<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>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- 這個(gè)也是必須要的 以下兩個(gè)<id>代碼塊中的id要與 setting.xml中的id一致 -->
<distributionManagement>
<snapshotRepository>
<id>oss</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>oss</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
</profile>
</profiles>
6. 打包你的應(yīng)用
到這一步貌似手續(xù)都準(zhǔn)備好了礼搁,可以打包你的應(yīng)用了饶碘。執(zhí)行以下命令
mvn clean deploy -P release -Dmaven.test.skip=true
然后等maven的一系列騷操作后,就會(huì)彈出一個(gè)框框讓你輸入passphrase
馒吴,就是剛剛用gpg創(chuàng)建key的那個(gè)密碼扎运,輸入之后瑟曲,再等maven一頓騷操作后,看到這個(gè)就成啦~
如果沒(méi)有彈出框框輸入passphrase
的話(huà)可以嘗試使用下面命令豪治,當(dāng)然這也是網(wǎng)上的方法了洞拨,盡管我輸入的是下面的代碼,還是彈出框框讓我輸入密碼了= =
mvn clean deploy -P release -Dmaven.test.skip=true -Dgpg.passphrase=你的passphrase
如果出現(xiàn)upload到oss錯(cuò)誤负拟,提示401的話(huà)烦衣,你再確定一下你修改的setting.xml
是否正確,是否是你系統(tǒng)環(huán)境的那個(gè)maven掩浙。
至于有別的問(wèn)題的話(huà)我就不清楚了花吟,我就出現(xiàn)了上面這樣的錯(cuò)誤。
7. 去處理你剛剛deploy的jar包
登陸https://oss.sonatype.org/ 去處理你剛剛deploy的jar包
- 選擇
taging Repositories
- 選擇你的項(xiàng)目
- close掉
然后系統(tǒng)會(huì)驗(yàn)證你的jar包信息涣脚,會(huì)執(zhí)行一系列的校驗(yàn)示辈,假如有錯(cuò)誤你可以點(diǎn)擊下面的錯(cuò)誤的位置,看看什么錯(cuò)誤再進(jìn)行處理
假如沒(méi)有任何問(wèn)題遣蚀,你再選中你的項(xiàng)目矾麻,點(diǎn)擊Release
,然后這一步驟就結(jié)束了
8. 關(guān)掉你的issue
到https://issues.sonatype.org 找到你剛剛的issue芭梯,給他留言险耀,讓他把issue close掉
9.0 等待2小時(shí)
經(jīng)過(guò)漫長(zhǎng)2小時(shí)的等待,打開(kāi)網(wǎng)站 https://search.maven.org/ 搜索你的gourpid就能搜索到啦
點(diǎn)擊那個(gè)latest Version玖喘,右手邊就能看到依賴(lài)信息啦~
然后迅速去體驗(yàn)在官方倉(cāng)庫(kù)導(dǎo)入依賴(lài)的快感吧(霧
更新
如果在下次需要deploy到官方倉(cāng)庫(kù)的時(shí)候甩牺,不需要再去提issue了,直接用上面的deploy命令累奈,然后重復(fù)第7個(gè)步驟就好了
參考感謝
非常感謝以下文章在當(dāng)初給予的幫助
如何把自己的Jar包上傳到 maven 官方倉(cāng)庫(kù)中贬派,Maven上傳圖文講解
發(fā)布Maven構(gòu)件到中央倉(cāng)庫(kù)
將 Smart 構(gòu)件發(fā)布到 Maven 中央倉(cāng)庫(kù)
這里打個(gè)小廣告,因?yàn)橐蟼鬟@個(gè)到官方倉(cāng)庫(kù)所以才有了這篇文章
這是一個(gè)使用微博圖床的java api澎媒,可以在自己的博客中使用~
https://github.com/echisan/wbp4j
使用起來(lái)也是挺方便的~
UploadRequest uploadRequest = new UploadRequestBuilder()
.setAcount("weibo username/email", "password")
.build();
UploadResponse response = uploadRequest.upload(new File("path"));
System.out.println(response.getResult());
System.out.println(response.getMessage());
System.out.println(response.getImageInfo());