如何上传自己的Jar到Maven中央仓库

编程入门 行业动态 更新时间:2024-10-24 14:26:25

如何上传<a href=https://www.elefans.com/category/jswz/34/1771270.html style=自己的Jar到Maven中央仓库"/>

如何上传自己的Jar到Maven中央仓库

在项目开发过程中,我们常常会使用 Maven 从仓库拉取开源的第三方 Jar 包。本文将带领大家将自己写好的代码或开源项目发布到 Maven中央仓库中,让其他人可以直接依赖你的 Jar 包,而不需要先下载你的代码后 install 到本地。

注册帐号

点击以下链接进行账号注册,注册的信息要记住,后面还要用,而且这个密码格式要求比较严格

!default.jspa

Jira 申请

注册登录过后,访问以下链接创建一个 issue,只有申请通过了才能进行后续的上传等操作。

.jspa?issuetype=21&pid=10134

提交过后呢,过几分钟就会有回复,同时你刚刚注册使用的邮箱也会收到邮件。

注意!

  1. 这里输入的信息全部使用英文。
  2. 关于这个 GroupID,不能是你瞎编的域名,如果你正好使用的是自己的域名(反写),可以想我这样填写,如果你没有域名,就得使用 Github 的域名了,格式填写 io.github.用户名(后续验证会验证域名或 GitHub 账号的所有权)

接下来过了几分钟就会收到回复,我们需要对填写的 GroupID 进行验证。

我上面 GroupID 填写的域名(反写)world.xuewei,所以我在这里需要添加一个 @ 方式的 TXT 类型的解析记录,内容为本次提交的 Issue 编号。如果你的 GroupID 的域名的下级,例如 world.xuewei.test 那么添加记录的时候可能要添加二级域名的记录,不能使用 @,我猜的,反正都试试。

配置好后,重新点击编辑,然后直接提交即可,然后需要再等几分钟就会收到回复如下:

这种就 OK 了,可以进行后续的操作了。

GPG 环境安装

GPG 的主要作用是生成密钥对,会用于后续我们组件发布的校验。下载地址:/。

找到适合自己设备的安装包后下载即可。

安装完成后运行:

  1. 新建密钥对

  2. 选中证书后发布

  3. 双击证书查看秘钥,然后复制出来,一会要用。

配置 Maven setting

找到本地安装的 Maven 的配置文件(注意这里不是项目里面的 pom.xml),打开编辑。

首先找到 <servers> 标签,在里面添加以下内容:

<server><id>ossrh</id><username>XUEW</username><password>这里是你第一步注册账号的时候的密码</password>
</server>

然后找到 <profiles> 标签,在里面添加以下内容(安装目录改成你的 GPG 目录,一定要到 bin 下的 gpg 这一层):

<profile><id>ossrh</id><activation><activeByDefault>true</activeByDefault></activation><properties><gpg.executable>D:\Program\GnuPG\bin\gpg</gpg.executable><gpg.passphrase>这里是你刚刚在 GPG 中复制的秘钥</gpg.passphrase></properties>
</profile>

配置项目 Pom

首先注意这里的 GroupID 一定要和前面申请的一样,不然在上传的时候就会报错。这个版本号最好改成数字的形式,就不要加默认的 -SNAPSHOT 了。

首先需要在 Pom 中配置仓库的信息,这个信息也要和申请的一样,不然也会报错,内容如下:

<licenses><license><name>The Apache Software License, Version 2.0</name><url>.0.txt</url><distribution>repo</distribution></license>
</licenses>
<!-- 仓库信息 -->
<scm><connection>scm:git@github:373675032/xw-fast.git</connection><developerConnection>scm:git@github:373675032/xw-fast.git</developerConnection><url>;/url>
</scm>
<!-- 开发人员信息 -->
<developers><developer><name>XUEW</name><email>isxuewei@qq</email><organization>;/organization><timezone>+8</timezone></developer>
</developers>

然后添加一些固有的信息,不需要更改:

<distributionManagement><snapshotRepository><id>ossrh</id><url>;/url></snapshotRepository><repository><id>ossrh</id><url>/</url></repository>
</distributionManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin><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>/</nexusUrl><stagingProgressTimeoutMinutes>20</stagingProgressTimeoutMinutes><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-gpg-plugin</artifactId><version>1.5</version><executions><execution><id>sign-artifacts</id><phase>verify</phase><goals><goal>sign</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><configuration><additionalOptions><additionalOption>-Xdoclint:none</additionalOption></additionalOptions></configuration><executions><execution><id>attach-javadocs</id><goals><goal>jar</goal></goals></execution></executions></plugin></plugins>
</build>

完整的 POM 文件

<project xmlns=".0.0" xmlns:xsi=""xsi:schemaLocation=".0.0 .0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>world.xuewei</groupId><artifactId>xw-fast-parent</artifactId><version>1.0.0</version><packaging>pom</packaging><name>xw-fast</name><description>Xw-Fast 是一个专为 Java Web 开发的针对 Spring 系列框架封装的便捷开发脚手架,旨在降低框架的学习使用成本,提高工作效率,大大提升 Web 开发效率。</description><modules><module>xw-fast-core</module><module>xw-fast-web</module><module>xw-fast-crud</module><module>xw-fast-all</module></modules><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>utf-8</project.reporting.outputEncoding><Automatic-Module-Name>world.xuewei.fast</Automatic-Module-Name><!-- versions --><compile.version>8</compile.version><junit.version>5.9.2</junit.version><lombok.version>1.18.26</lombok.version><hutool.version>5.7.17</hutool.version><boot.version>2.7.17</boot.version><fastjson.version>1.2.47</fastjson.version></properties><dependencies><!-- 全局单元测试 --><dependency><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version><scope>compile</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>${boot.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${boot.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>${boot.version}</version></dependency></dependencies><url>;/url><licenses><license><name>The Apache Software License, Version 2.0</name><url>.0.txt</url><distribution>repo</distribution></license></licenses><!-- 仓库信息 --><scm><connection>scm:git@github:373675032/xw-fast.git</connection><developerConnection>scm:git@github:373675032/xw-fast.git</developerConnection><url>;/url></scm><!-- 开发人员信息 --><developers><developer><name>XUEW</name><email>isxuewei@qq</email><organization>;/organization><timezone>+8</timezone></developer></developers><distributionManagement><snapshotRepository><id>ossrh</id><url>;/url></snapshotRepository><repository><id>ossrh</id><url>/</url></repository></distributionManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin><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>/</nexusUrl><stagingProgressTimeoutMinutes>20</stagingProgressTimeoutMinutes><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-gpg-plugin</artifactId><version>1.5</version><executions><execution><id>sign-artifacts</id><phase>verify</phase><goals><goal>sign</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><configuration><additionalOptions><additionalOption>-Xdoclint:none</additionalOption></additionalOptions></configuration><executions><execution><id>attach-javadocs</id><goals><goal>jar</goal></goals></execution></executions></plugin></plugins></build></project>

部署上传

先刷新、然后清理,然后部署。

部署的时间有点长,耐心等待,这个步骤就是最关键的了,我由于配置错误重试了很多次,心态都崩了…

验证

使用第一步注册的账号登录系统 /

在前面正在部署的过程中可以观察下面这里:

部署完成后可以观察下面这里:

如果你找到了你的 Jar,那么恭喜你,你已经上传成功了!之后再需要等待两三个小时,在 和 便可以搜到自己发布的依赖了!同时也会收到一封邮件通知。

参考链接:

  1. JAVA 如何上传自己的jar包到Maven中央仓库_本地jar包上传到maven仓库-CSDN博客
  2. 将项目上传到 Maven 中央仓库(2023最新) - 知乎 (zhihu)
  3. 将jar包发布到maven的中央仓库细节整理 - 陈灬大灬海 - 博客园 (cnblogs)

更多推荐

如何上传自己的Jar到Maven中央仓库

本文发布于:2023-11-15 21:45:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1606814.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自己的   仓库   中央   上传   Jar

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!