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

上傳自己的jar包到maven中央倉庫的快速操作方法

 更新時間:2021年08月20日 10:19:16   作者:Java魚仔  
網(wǎng)絡(luò)上可以搜索到很多jar包到中央倉庫,但是都不是多適合自己的項(xiàng)目,于是自己動手寫個,本文檔通過sonatype上傳jar包至maven中央倉庫,Sonatype通過JIRA來管理OSSRH倉庫,具體實(shí)例代碼跟隨小編一起看看吧

(一)概述

現(xiàn)在網(wǎng)絡(luò)上已經(jīng)有不少上傳jar包至中央倉庫的教程,但是我搜了一大圈之后發(fā)現(xiàn)當(dāng)時的做法目前并不適用,因此決定自己寫下上傳jar包至中央倉庫的方式,寫這篇文章的時間是2021年8月18日。

(二)注冊jira

本文檔通過sonatype上傳jar包至maven中央倉庫,Sonatype通過JIRA來管理OSSRH倉庫,因此首先注冊jira賬號

https://issues.sonatype.org/secure/Signup!default.jspa

(三)發(fā)布申請

jira創(chuàng)建完成后,我們需要提一個上傳jar包的申請:

https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134

其中概要和描述可以自己隨便寫一點(diǎn)關(guān)于要上傳項(xiàng)目的詳情,groupId填寫自己的域名,如果沒有的話可以填io.github.[你的github賬戶名],另外兩個必填項(xiàng)填寫項(xiàng)目的git地址


創(chuàng)建完成之后,會有人對你的請求做處理,并在注釋中給出意見,如果通過的話,這個問題的狀態(tài)就會變成已解決

(四)發(fā)布項(xiàng)目

當(dāng)請求通過后,處理人員會發(fā)過來處理成功的消息,同時會帶上發(fā)布項(xiàng)目的教程地址:

https://central.sonatype.org/publish/publish-guide/#deployment

雖然這個教程中貼上了很詳細(xì)的過程,但是因?yàn)槿⑽?,而且還有點(diǎn)亂,因此我在這篇文章中發(fā)布一次

4.1 安裝配置gpg

發(fā)布到Maven倉庫中的所有文件都要使用GPG簽名,以保障完整性,因此我們需要先創(chuàng)建GPG,下載GPG

https//www.gnupg.org/download/

安裝過程就一路next就行,安裝完成之后在命令行輸入gpg --version,如果彈出具體的版本號就說明安裝成功。

通過gpg --gen-key命令生成密鑰,期間會輸入用戶名、郵箱和密碼,記住自己的密碼。

生成之后通過gpg --list-keys查看密鑰,pub下的一連串字符就是公鑰,將這串公鑰發(fā)布到密鑰服務(wù)器:

gpg --keyserver keyserver.ubuntu.com --send-keys 你的密鑰

發(fā)送完成后提示發(fā)送成功

4.2 配置maven的setting.xml

setting.xml是maven的配置文件,放在本地,你可以通過idea的setting找到當(dāng)前項(xiàng)目對應(yīng)的setting.xml文件路徑

部署ossrh身份認(rèn)證信息:

<settings>
  	<servers>
    		<server>
      			<id>ossrh</id>
      			<username>your-jira-id</username>
      			<password>your-jira-pwd</password>
    		</server>
  	</servers>
</settings>

至此,setting.xml配置就結(jié)束了

4.3 配置pom文件

接下來配置項(xiàng)目的pom文件:

首先填寫項(xiàng)目相關(guān)的信息,比如groupId,developers等等,這一塊每個人都不同,這里就不做過多講解,注意!groupId必須和你提交jira時填寫的一樣,不然怎么都傳不上去。下面僅供參考:

<groupId>io.github.oliverliy</groupId>
<artifactId>fast-sso</artifactId>
<version>0.0.1</version>
<packaging>pom</packaging>
<name>fast-sso</name>
<url>https://github.com/OliverLiy/fast-sso</url>
<description>一個可快速接入的sso項(xiàng)目</description>
<licenses>
    <license>
        <name>Apache License, Version 2.0</name>
        <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        <distribution>repo</distribution>
        <comments>A business-friendly OSS license</comments>
    </license>
</licenses>
<scm>
    <url>https://github.com/OliverLiy/fast-sso</url>
    <connection>https://github.com/OliverLiy/fast-sso.git</connection>
</scm>
<modules>
    <module>fast-sso-client</module>
    <module>fast-sso-server</module>
    <module>fast-sso-example</module>
</modules>
<developers>
    <developer>
        <name>javayz</name>
        <id>javayz</id>
        <email>974474148@qq.com</email>
        <roles>
            <role>Developer</role>
        </roles>
        <timezone>+8</timezone>
    </developer>
</developers>

<properties>
    <springboot.version>2.2.0.RELEASE</springboot.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

配置distributionManagement,自 2021 年 2 月起,所有的新項(xiàng)目都配置在https://s01.oss.sonatype.org/上,因此下面的配置在一些2021年之前的博客中都是不一樣的。

<distributionManagement>
  <snapshotRepository>
    <id>ossrh</id>
    <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
  </snapshotRepository>
  <repository>
    <id>ossrh</id>
    <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
  </repository>
</distributionManagement>

接著配置打包插件、 javadoc 和源 Maven 插件、Maven GPG 插件

<build>
        <plugins>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.7</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                </configuration>
            </plugin>
            <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>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.9.1</version>
                <configuration>
                    <!-- jdk1.8要加上,1.7要去掉,否則會報錯 -->
                    <additionalJOptions>
                        <additionalJOption>-Xdoclint:none</additionalJOption>
                    </additionalJOptions>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
</build>

最后提供一份完整的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>io.github.oliverliy</groupId>
    <artifactId>fast-sso</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>
    <name>fast-sso</name>
    <url>https://github.com/OliverLiy/fast-sso</url>
    <description>一個可快速接入的sso項(xiàng)目</description>
    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>
    <scm>
        <url>https://github.com/OliverLiy/fast-sso</url>
        <connection>https://github.com/OliverLiy/fast-sso.git</connection>
    </scm>
    <modules>
        <module>fast-sso-client</module>
        <module>fast-sso-server</module>
        <module>fast-sso-example</module>
    </modules>
    <developers>
        <developer>
            <name>javayz</name>
            <id>javayz</id>
            <email>974474148@qq.com</email>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>+8</timezone>
        </developer>
    </developers>

    <properties>
        <springboot.version>2.2.0.RELEASE</springboot.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <distributionManagement>
                <snapshotRepository>
                    <id>ossrh</id>
                    <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
                </snapshotRepository>
                <repository>
                    <id>ossrh</id>
                    <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>
            </distributionManagement>
            <build>
                    <plugins>
                        <plugin>
                            <groupId>org.sonatype.plugins</groupId>
                            <artifactId>nexus-staging-maven-plugin</artifactId>
                            <version>1.6.7</version>
                            <extensions>true</extensions>
                            <configuration>
                                <serverId>ossrh</serverId>
                                <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                                <autoReleaseAfterClose>true</autoReleaseAfterClose>
                            </configuration>
                        </plugin>
                        <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>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-javadoc-plugin</artifactId>
                            <version>2.9.1</version>
                            <configuration>
                                <!-- jdk1.8要加上,1.7要去掉,否則會報錯 -->
                                <additionalJOptions>
                                    <additionalJOption>-Xdoclint:none</additionalJOption>
                                </additionalJOptions>
                            </configuration>
                            <executions>
                                <execution>
                                    <id>attach-javadocs</id>
                                    <goals>
                                        <goal>jar</goal>
                                    </goals>
                                </execution>
                            </executions>
                        </plugin>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-gpg-plugin</artifactId>
                            <version>1.5</version>
                            <executions>
                                <execution>
                                    <id>sign-artifacts</id>
                                    <phase>verify</phase>
                                    <goals>
                                        <goal>sign</goal>
                                    </goals>
                                </execution>
                            </executions>
                        </plugin>
                    </plugins>
            </build>
        </profile>
    </profiles>
</project>

4.4 打包上傳

最后一步就比較簡單了,在當(dāng)前目錄下執(zhí)行deploy命令

mvn clean deploy

稍等片刻,提示build success后即表示打包成功

(五)發(fā)布

上面執(zhí)行完成之后,登陸nexus:https://s01.oss.sonatype.org/#stagingRepositories,登上jira賬號之后就能看到我們剛剛發(fā)布的內(nèi)容

選中后點(diǎn)擊上方的Close,他會檢測你的jar包是否存在問題,如果存在問題,點(diǎn)擊下方的Activity即可查看具體的問題,主要影響release的問題大部分都是打包時漏了一些東西,照著問題修復(fù)即可。

檢測完成后上方的release就會變成可點(diǎn)擊的狀態(tài),點(diǎn)擊release后,你會收到一份郵件

郵件的意思是大概30分鐘可以同步到maven倉庫,大概4個小時可以在search.maven.org中搜到。現(xiàn)在我已經(jīng)能在中央倉庫看到自己的jar包了。你的jar包就能被別人使用了。

(六)總結(jié)

為什么要搗鼓這個東西呢?因?yàn)樽罱趯懸粋€有關(guān)統(tǒng)一認(rèn)證的開源項(xiàng)目,需要上傳jar包至中央倉庫。這個開源項(xiàng)目的目的是為了能讓項(xiàng)目通過簡單的一些配置就可以快速接入統(tǒng)一認(rèn)證系統(tǒng),因此我給這個項(xiàng)目取名fast-sso,之后會發(fā)一個初始版本出來。我是魚仔,我們下期再見!

到此這篇關(guān)于上傳自己的jar包到maven中央倉庫的快速操作方法的文章就介紹到這了,更多相關(guān)jar包上傳maven中央倉庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springBoot+mybatis-plus實(shí)現(xiàn)監(jiān)聽mysql數(shù)據(jù)庫的數(shù)據(jù)增刪改

    springBoot+mybatis-plus實(shí)現(xiàn)監(jiān)聽mysql數(shù)據(jù)庫的數(shù)據(jù)增刪改

    mybatis-plus技術(shù)是簡化了繁瑣的代碼操作,把增刪改查的語句都內(nèi)置了,直接調(diào)用就可以實(shí)現(xiàn)數(shù)據(jù)庫的增刪改查了,這篇文章主要給大家介紹了關(guān)于springBoot+mybatis-plus實(shí)現(xiàn)監(jiān)聽mysql數(shù)據(jù)庫數(shù)據(jù)增刪改的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • springboot + mybatis配置多數(shù)據(jù)源示例

    springboot + mybatis配置多數(shù)據(jù)源示例

    本篇文章主要介紹了springboot + mybatis配置多數(shù)據(jù)源示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Java RandomAccessFile基本文件操作示例

    Java RandomAccessFile基本文件操作示例

    這篇文章主要介紹了Java RandomAccessFile基本文件操作,結(jié)合實(shí)例形式分析了Java基于RandomAccessFile實(shí)現(xiàn)文件讀寫及文件隨機(jī)訪問相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • 解決idea web 配置相對路徑問題

    解決idea web 配置相對路徑問題

    這篇文章主要介紹了idea web 配置相對路徑問題的解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • 詳解Java中-classpath和路徑的使用

    詳解Java中-classpath和路徑的使用

    本篇文章主要介紹了Java中-classpath和路徑的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • SpringBoot中@Autowired注入service時出現(xiàn)循環(huán)依賴問題的解決方法

    SpringBoot中@Autowired注入service時出現(xiàn)循環(huán)依賴問題的解決方法

    在Spring Boot開發(fā)過程中,@Autowired注入Service時出現(xiàn)循環(huán)依賴是一個常見問題,循環(huán)依賴指的是兩個或多個Bean相互依賴,形成閉環(huán),導(dǎo)致Spring容器無法正常初始化這些Bean,這里提供幾種解決Spring Boot中@Autowired注入Service時循環(huán)依賴問題的方法
    2024-02-02
  • Java實(shí)現(xiàn)精準(zhǔn)Excel數(shù)據(jù)排序的方法詳解

    Java實(shí)現(xiàn)精準(zhǔn)Excel數(shù)據(jù)排序的方法詳解

    在數(shù)據(jù)處理或者數(shù)據(jù)分析的場景中,需要對已有的數(shù)據(jù)進(jìn)行排序,在Excel中可以通過排序功能進(jìn)行整理數(shù)據(jù),而在Java中,則可以借助Excel表格插件對數(shù)據(jù)進(jìn)行批量排序,下面我們就來學(xué)習(xí)一下常見的數(shù)據(jù)排序方法吧
    2023-10-10
  • JAVA JSP頁面技術(shù)之EL表達(dá)式整理歸納總結(jié)

    JAVA JSP頁面技術(shù)之EL表達(dá)式整理歸納總結(jié)

    這篇文章主要介紹了java中JSP頁面技術(shù)之EL表達(dá)式概念作用以及語法等的使用,需要的朋友可以參考
    2017-04-04
  • Java項(xiàng)目中添加外部jar包的兩種方式(收藏版)

    Java項(xiàng)目中添加外部jar包的兩種方式(收藏版)

    這篇文章主要介紹了java項(xiàng)目中添加外部jar包的兩種方式,第二種方式是將外部jar包引入到本地maven倉庫中,本文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Java基礎(chǔ)之詳解HashSet的使用方法

    Java基礎(chǔ)之詳解HashSet的使用方法

    今天給大家?guī)淼氖顷P(guān)于Java基礎(chǔ)的相關(guān)知識,文章圍繞著HashSet的使用方法展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評論

柘城县| 锦州市| 郎溪县| 红桥区| 广丰县| 武夷山市| 铜陵市| 濮阳县| 临城县| 永定县| 措勤县| 望奎县| 秭归县| 马尔康县| 邢台县| SHOW| 延津县| 宜宾县| 体育| 呼图壁县| 阜新市| 象山县| 晋州市| 固原市| 汤阴县| 肇东市| 澎湖县| 秦安县| 神池县| 从化市| 买车| 沾化县| 阳原县| 南岸区| 平阴县| 宁陕县| 永春县| 三原县| 武汉市| 九龙县| 怀来县|