最近閒下來了,想要本身造點小輪子用,方便本身在不一樣項目使用,同時想偷懶,不想每次都在項目裏面copy代碼。因而想到了重要倉庫這個東西,把本身的代碼託管到github(雖然如今的github已經再也不單純),而後發佈jar包到maven中央倉庫,之後每一個項目都只用引入maven依賴就能夠了。同時還能方便好基友們使用,萬一哪一天好基友高興就獻身了呢,想一想就有點小激動呢。好了廢話很少說,下面正式開始手把手教學活動。
附上小輪子傳送門給感興趣的小夥伴
將項目發佈到maven倉庫須要如下幾步:
1.在sonatype中建立issue
2.使用gpg生成祕鑰
3.配置Maven進行deploy和releasehtml
首先咱們須要在https://issues.sonatype.org/secure/Dashboard.jspa中新建一個issues。若是沒有sonatype帳號的話,分分鐘註冊一個
建立完成後就是以下圖示
這個時候只須要耐心等待工做人員審覈就好了,由於個人domain問題,經歷了二次審覈,可是都很快,通常提交後兩個小時內就會有結果。當issues狀態變爲Resolved就能夠繼續下一步操做了。java
選擇對應的OS版本進行下載安裝便可,下載地址傳送門:https://www.gnupg.org/download/index.htmlgit
首先查看安裝成功沒有github
gpg –version
(MAC 和 Linux系統須要 gpg2 –version)
經過算法
gpg –gen-key
生成key,也能夠經過UI界面生成和管理key
運行後gpg要求你選擇加密算法,過時時間等等,這些直接選擇默認值便可。經過對比發現,gpg 2.0以上的版本運行gpg –gen-key命令 會跳過這些步驟。
以後gpg要求你輸入姓名,郵箱以及關鍵的Passphrase,依次輸入便可。而後gpg爲你生成了一對祕鑰。
經過apache
gpg –list-keys
查看生成的key列表
這裏能夠看到個人公鑰是:34754DFE562C10E1A09907B7F4797C9A95E36DB6,記住這個key,下面咱們須要用到。服務器
生成祕鑰後,咱們須要把公鑰上傳到服務器上。運行如下命令:dom
gpg2 –keyserver hkp://pool.sks-keyservers.net –send-keys 34754DFE562C10E1A09907B7F4797C9A95E36DB6(剛纔生成的公鑰)
須要在本地的maven配置server 和 profile 兩個地方,囉嗦的話就很少少了,直接上配置:jsp
<server> <id>ossrh</id> <username>第一步註冊的用戶名</username> <password>第一步註冊的密碼</password> </server>
<profile> <id>ossrh</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <gpg.executable>gpg(MAC 和 Linux用戶使用gpg2)</gpg.executable> <gpg.passphrash>生成密鑰時輸入的密碼</gpg.passphrash> </properties>
具體的配置能夠查看小輪子裏面的pom設置 https://github.com/weechang/JUtil/blob/master/pom.xml
首先須要添加指向sonatype倉庫的<distributionManagement>maven
<distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <name>Maven Central Staging Repository</name> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement>
繼續配置pfofiles,添加各類推送、DOC、加密的插件
<profiles> <profile> <id>release <build> <plugins> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.8</version> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.6</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles>
而後還能夠添加一些開發者信息和license信息,具體的就很少說了。具體能夠參考小輪子的配置
運行如下代碼進行deploy
mvn clean deploy -P release
以下圖表示成功部署到中央倉庫
由於咱們在pom中添加了自動發佈插件,因此能夠不用管理,直接到中央倉庫去查看就能看到你發佈的項目了
PS:在部署過成功可能會遇到401的問題,具體請參考傳送門 https://stackoverflow.com/questions/24830610/why-am-i-getting-a-401-unauthorized-error-in-maven
本文轉自:https://blog.weechang.xyz/2018/07/20/手把手教學,教你把你的我的項目推送到maven中央倉庫/