手把手教學,教你把你的我的項目推送到maven中央倉庫

前言

最近閒下來了,想要本身造點小輪子用,方便本身在不一樣項目使用,同時想偷懶,不想每次都在項目裏面copy代碼。因而想到了重要倉庫這個東西,把本身的代碼託管到github(雖然如今的github已經再也不單純),而後發佈jar包到maven中央倉庫,之後每一個項目都只用引入maven依賴就能夠了。同時還能方便好基友們使用,萬一哪一天好基友高興就獻身了呢,想一想就有點小激動呢。好了廢話很少說,下面正式開始手把手教學活動。

附上小輪子傳送門給感興趣的小夥伴
將項目發佈到maven倉庫須要如下幾步:
1.在sonatype中建立issue
2.使用gpg生成祕鑰
3.配置Maven進行deploy和releasehtml

1 在sonatype中建立issue

首先咱們須要在https://issues.sonatype.org/secure/Dashboard.jspa中新建一個issues。若是沒有sonatype帳號的話,分分鐘註冊一個

建立完成後就是以下圖示

這個時候只須要耐心等待工做人員審覈就好了,由於個人domain問題,經歷了二次審覈,可是都很快,通常提交後兩個小時內就會有結果。當issues狀態變爲Resolved就能夠繼續下一步操做了。java

2 使用gpg生成祕鑰

2.1 安裝

選擇對應的OS版本進行下載安裝便可,下載地址傳送門:https://www.gnupg.org/download/index.htmlgit

2.2 生成key

首先查看安裝成功沒有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,下面咱們須要用到。服務器

 

2.3 上傳公鑰

生成祕鑰後,咱們須要把公鑰上傳到服務器上。運行如下命令:dom

gpg2 –keyserver hkp://pool.sks-keyservers.net –send-keys 34754DFE562C10E1A09907B7F4797C9A95E36DB6(剛纔生成的公鑰)

 

3 配置Maven

3.1 配置maven setting.xml

須要在本地的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>

3.2 配置項目的pom.xml

具體的配置能夠查看小輪子裏面的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信息,具體的就很少說了。具體能夠參考小輪子的配置

 

3.3 部署到中央倉庫

運行如下代碼進行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中央倉庫/

相關文章
相關標籤/搜索