最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Maven中央倉(cāng)庫(kù)發(fā)布的實(shí)現(xiàn)方法

 更新時(shí)間:2021年06月25日 10:20:15   作者:小學(xué)徒V  
最近做了個(gè)項(xiàng)目,希望能夠上傳到maven中央倉(cāng)庫(kù),給更多的人使用,于是就產(chǎn)生了這次項(xiàng)目發(fā)布經(jīng)歷。感興趣的可以一起來(lái)參考一下

一、前言

最近自己在學(xué)習(xí)Spring boot的過(guò)程中開(kāi)發(fā)了一個(gè)組件 multithreadpool-spring-boot-starter,通過(guò)這個(gè)組件,我們可以動(dòng)態(tài)根據(jù)配置文件進(jìn)行多個(gè)線(xiàn)程池的初始化。既然有這個(gè)產(chǎn)出后,肯定是希望能夠上傳到maven中央倉(cāng)庫(kù),給更多的人使用,于是就產(chǎn)生了這次項(xiàng)目發(fā)布經(jīng)歷。

整個(gè)過(guò)程可謂是一波三折,由于平時(shí)工作比較忙只能晚上花一個(gè)小時(shí)搞,所以在經(jīng)歷了近一周的時(shí)間后,終于成功發(fā)布上去了。

下面把我當(dāng)時(shí)的上傳過(guò)程記錄下來(lái),希望幫助更多的朋友。

二、環(huán)境準(zhǔn)備

1> mac osx 10.14.6 : 本文主要以mac環(huán)境為準(zhǔn)

2>Apache Maven 3.2.3 : 本文主要使用maven進(jìn)行構(gòu)建和發(fā)布例子的說(shuō)明

三、步驟說(shuō)明

1、工單創(chuàng)建

1> 訪(fǎng)問(wèn)sonatype并注冊(cè)賬號(hào)https://issues.sonatype.org,注意要記住賬號(hào)密碼,會(huì)用于我們后續(xù)的發(fā)布及相關(guān)操作

2> 如圖新建一個(gè)issue,項(xiàng)目需要選擇Community Support - Open Source Project Repository Hosting

3> 參考下圖填寫(xiě)概要、Group Id、項(xiàng)目地址、代碼管理地址,填寫(xiě)后點(diǎn)擊確認(rèn)提交。網(wǎng)上很多都說(shuō)需要幾個(gè)小時(shí)或者隔天才有回復(fù),我當(dāng)時(shí)等了10分鐘就收到回復(fù)了。此時(shí),對(duì)方跟你說(shuō)兩件事情:

  • 【提醒】確保 group id對(duì)應(yīng)的域名是你的
  • 【校驗(yàn)】比如我是的項(xiàng)目地址是github上的,他會(huì)要求我在github上創(chuàng)建一個(gè)和issue同名的項(xiàng)目確保我擁有該項(xiàng)目的管理權(quán)限,

完成確認(rèn)并創(chuàng)建和issue同名的項(xiàng)目后,記得要在issue進(jìn)行回復(fù),具體參考: sonatype-issueGithub倉(cāng)庫(kù)

4> 在通過(guò)上述的確認(rèn)和校驗(yàn)后,sonatype會(huì)回復(fù)你到時(shí)候maven發(fā)布會(huì)用到的snapshot地址和release地址,并提醒你首次發(fā)布后需要回復(fù)該issue,詳情參考issue

2、gpg 環(huán)境安裝

gpg的主要作用是生成密鑰對(duì),會(huì)用于后續(xù)我們組件發(fā)布的校驗(yàn)。

1> 下載地址:https://www.gnupg.org/download/

2> 如圖紅色框所示下載并安裝

3> 在安裝完成后,執(zhí)行以下命令生成密鑰對(duì),按照提示輸入賬號(hào)、郵箱、密碼 (PS: 此處的密碼在后面發(fā)布會(huì)用到,請(qǐng)務(wù)必記住)

gpg2 --gen-key 

4> 執(zhí)行命令查看密鑰, 此時(shí)控制臺(tái)會(huì)輸出類(lèi)似下面的內(nèi)容

$ gpg2 --list-keys 
...
  pub rsa2048 2019-04-12 [SC] [有效至:2021-04-11]  9A1640F7A2551131612D51B12D83594B7B29D86A  uid           [ 絕對(duì) ] xiaoxuetu <xiaoxuetu@163.com>  sub   rsa2048 2019-04-12 [E] [有效至:2021-04-11]

5> 執(zhí)行以下命令將公鑰發(fā)布到服務(wù)器中

$ gpg --keyserver hkp://subkeys.pgp.net --send-keys 9A1640F7A2551131612D51B12D83594B7B29D86A
...
gpg: 正在發(fā)送密鑰 2D83594B7B29D86A 到 hkp://subkeys.pgp.net
gpg: 發(fā)送至公鑰服務(wù)器失?。篠erver indicated a failure
gpg: 發(fā)送至公鑰服務(wù)器失敗:Server indicated a failure

6> 如果控制臺(tái)輸出如上面類(lèi)似的錯(cuò)誤內(nèi)容,則將命令中的密鑰調(diào)整為2D83594B7B29D86A

$ gpg --keyserver hkp://subkeys.pgp.net --send-keys 2D83594B7B29D86A
  gpg: sending key 2D83594B7B29D86A to hkp://pool.sks-keyservers.net

3、Maven全局配置

一般情況下,maven全局配置存在于 ${HOME}/.m2/setting.xml ,如果這個(gè)目錄下沒(méi)有,則可以從 ${MAVEN_HOME}/conf/setting.xml 拷貝一份到${HOME}/.m2 目錄下并進(jìn)行以下修改

1> 添加服務(wù)器驗(yàn)證信息

<server>
      <id>sonatype_releases</id>
      <username>your user name</username>
      <password>your password</password>
    </server>
    <server>
      <id>sonatype_snapshots</id>
      <username>your user name</username>
      <password>your password</password>
    </server>

2> 配置gpg驗(yàn)證命令

<settings>
  <profiles>
    <profile>
      <id>gpg</id>
      <properties>
        <!-- 由于我電腦安裝的是gpg2,不存在gpg命令,所以需要指定執(zhí)行g(shù)pg2,否則會(huì)報(bào)錯(cuò) -->
        <gpg.executable>gpg2</gpg.executable>
        <gpg.passphrase>your password</gpg.passphrase>
      </properties>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>gpg</activeProfile>
  </activeProfiles>
</settings>

4、項(xiàng)目maven配置

1> 在項(xiàng)目的pom.xml中,配置相應(yīng)的開(kāi)源協(xié)議、倉(cāng)庫(kù)信息、開(kāi)發(fā)人員信息和發(fā)布配置

<!-- 開(kāi)源簽名證書(shū) -->
    <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>

    <!-- 倉(cāng)庫(kù)信息 -->
    <scm>
        <connection>scm:git:git@github.com:xiaoxuetu/multithreadpool-spring-boot-starter.git</connection>
        <developerConnection>scm:git:git@github.com:xiaoxuetu/multithreadpool-spring-boot-starter.git
        </developerConnection>
        <url>http://github.com/xiaoxuetu/multithreadpool-spring-boot-starter/tree/master</url>
    </scm>


    <!-- 開(kāi)發(fā)人員信息 -->
    <developers>
        <developer>
            <name>xiaoxuetu</name>
            <email>xiaoxuetu@163.com</email>
            <organization>https://github.com/xiaoxuetu</organization>
            <timezone>+8</timezone>
        </developer>
    </developers>

    <!-- 發(fā)布管理信息 -->
    <distributionManagement>
        <repository>
            <!-- 這里的id必須要和全局配置中的release id 一致 -->
            <id>sonatype_releases</id>
            <name>Nexus Release Repository</name>
            <!-- 這里就是在創(chuàng)建issue成功后,對(duì)方回復(fù)的release發(fā)布地址-->
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
        </repository>
        <snapshotRepository>
            <!-- 這里的id必須要和全局配置中的snapshot id 一致 -->
            <id>sonatype_snapshots</id>
            <name>Nexus Snapshot Repository</name>
            <!-- 這里就是在創(chuàng)建issue成功后,對(duì)方回復(fù)的snapshot發(fā)布地址-->
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

2> 由于發(fā)布到maven中央倉(cāng)庫(kù)會(huì)要求我們?cè)谏蟼鱦ar到同時(shí),必須同步發(fā)布對(duì)應(yīng)到Javadoc、source、asc(利用gpg生成到校驗(yàn)),所以需要在maven中添加以下構(gòu)建插件

<build>
        <plugins>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.7</version>
                <extensions>true</extensions>
                <configuration>
                    <!-- 這里的id必須要和全局配置中的release id 一致 -->
                    <serverId>sonatype_releases</serverId>
                    <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                    <!-- 如果希望發(fā)布后自動(dòng)執(zhí)行close和release操作,此處可以調(diào)整為true -->
                    <autoReleaseAfterClose>false</autoReleaseAfterClose>
                </configuration>
            </plugin>

            <!-- 生成java source.jar -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- 生成asc 校驗(yàn)文件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <!-- 必須和配置中的gpg校驗(yàn)id一致 -->
                        <id>gpg</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

5、發(fā)布操作

1> 執(zhí)行以下命令進(jìn)行發(fā)布(如果 pom.xml 中autoReleaseAfterClose 的值為true,則腳本會(huì)自動(dòng)完成在平臺(tái)上close、release的操作,至此你將成功發(fā)布了,否則我們繼續(xù)查看第2步)

 mvn clean javadoc:jar deploy -P release

2>登錄https://oss.sonatype.org,然后選擇staging Repositories

3> 如下圖搜索并選擇需要發(fā)布的組件,依次執(zhí)行Close、Release操作

4> 如果Release成功,并且你是首次發(fā)布組件,則需要到你創(chuàng)建到issue中回復(fù) “我已經(jīng)成功發(fā)布該組件”,經(jīng)歷大概2小時(shí)后,該組件將會(huì)同步到對(duì)應(yīng)的maven倉(cāng)庫(kù)

5> 如果Close或者Release不成功,你可以如下圖操作查看原因并谷歌定位,或者回復(fù)咨詢(xún)

四、參考文檔

1>發(fā)布構(gòu)件到 Maven 中央倉(cāng)庫(kù)遇到的坑:https://juejin.im/post/5cb03e1a5188251b0e4e3583

2>Working with PGP Signatures:https://central.sonatype.org/pages/working-with-pgp-signatures.html

3>Deploying to OSSRH with Apache Maven:https://central.sonatype.org/pages/apache-maven.html

到此這篇關(guān)于Maven中央倉(cāng)庫(kù)發(fā)布的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Maven中央倉(cāng)庫(kù)發(fā)布內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在SpringBoot中使用JWT的實(shí)現(xiàn)方法

    在SpringBoot中使用JWT的實(shí)現(xiàn)方法

    這篇文章主要介紹了在SpringBoot中使用JWT的實(shí)現(xiàn)方法,詳細(xì)的介紹了什么是JWT和JWT實(shí)戰(zhàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Java class文件格式總結(jié)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java class文件格式總結(jié)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java class文件格式總結(jié)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧
    2017-06-06
  • Java實(shí)現(xiàn)自定義枚舉值校驗(yàn)器的示例代碼

    Java實(shí)現(xiàn)自定義枚舉值校驗(yàn)器的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)自定義枚舉值校驗(yàn)器的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-02-02
  • IDEA之配置JDK、Git、Maven詳解

    IDEA之配置JDK、Git、Maven詳解

    文章總結(jié):本文介紹了如何在IDEA中配置JDK、Git和Maven,包括設(shè)置Java編譯器路徑、配置Git版本控制、修改Maven根目錄以加快jar包下載速度,并提供了一個(gè)解決方案以確保配置在新項(xiàng)目中生效
    2025-01-01
  • SpringBoot短鏈接跳轉(zhuǎn)的代碼實(shí)現(xiàn)

    SpringBoot短鏈接跳轉(zhuǎn)的代碼實(shí)現(xiàn)

    短鏈跳轉(zhuǎn)是一種通過(guò)將長(zhǎng)鏈接轉(zhuǎn)換為短鏈接的方式,以便在互聯(lián)網(wǎng)上進(jìn)行鏈接共享和傳播的技術(shù),短鏈將原始長(zhǎng)鏈接通過(guò)特定算法轉(zhuǎn)換為較短的鏈接,使得它更容易分享、傳播和展示,本文給大家介紹了SpringBoot短鏈接跳轉(zhuǎn)的代碼實(shí)現(xiàn),需要的朋友可以參考下
    2024-03-03
  • Java 棧和隊(duì)列的交互實(shí)現(xiàn)

    Java 棧和隊(duì)列的交互實(shí)現(xiàn)

    棧和隊(duì)列都是常用的數(shù)據(jù)結(jié)構(gòu),本文就來(lái)介紹一下Java 棧和隊(duì)列的交互實(shí)現(xiàn),主要包括隊(duì)列模擬實(shí)現(xiàn)棧及棧模擬實(shí)現(xiàn)隊(duì)列,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 淺談選擇、冒泡排序,二分查找法以及一些for循環(huán)的靈活運(yùn)用

    淺談選擇、冒泡排序,二分查找法以及一些for循環(huán)的靈活運(yùn)用

    下面小編就為大家?guī)?lái)一篇淺談選擇、冒泡排序,二分查找法以及一些for循環(huán)的靈活運(yùn)用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • PowerJob LockService方法工作流程源碼解讀

    PowerJob LockService方法工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob LockService方法工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Java加密解密工具(適用于JavaSE/JavaEE/Android)

    Java加密解密工具(適用于JavaSE/JavaEE/Android)

    這篇文章主要介紹了Java加密解密工具,適用于JavaSE/JavaEE/Android,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Tomcat Cannot assign requested address: JVM_Bind 非端口占用沖突

    Tomcat Cannot assign requested address: JVM_Bind 非端口占用沖突

    這篇文章主要介紹了 Tomcat Cannot assign requested address: JVM_Bind 非端口占用沖突的相關(guān)資料,需要的朋友可以參考下
    2017-01-01

最新評(píng)論

洛扎县| 金坛市| 隆林| 米脂县| 双流县| 雅江县| 武安市| 永嘉县| 汨罗市| 临沭县| 太湖县| 沾化县| 龙岩市| 孝义市| 桃园市| 高雄市| 集贤县| 奇台县| 安顺市| 永安市| 凤台县| 北宁市| 鄂温| 麟游县| 商洛市| 儋州市| 卓资县| 内江市| 南宁市| 昔阳县| 资阳市| 库伦旗| 寿光市| 临沧市| 阜南县| 恭城| 瓦房店市| 兴海县| 漳州市| 神木县| 德令哈市|