如何将jar包上传到Maven中央仓库

背景

日常工作中经常会出现这样的场景,你需要将自己的服务暴露给其他合作同事使用,在系统规模较小时,打成jar包并且提供给其他合作方使用可以解决这类问题,但是随着系统规模的扩张,通过jar包互传不但容易丢失,还可能造成依赖方之间版本号不一致,这时候就需要使用maven来统一管理服务依赖,一般企业有两种方式,一种是上传到中央仓库,一种是搭建私服。

整体流程

  1. 在sonatype提交发布工单(Issue)
  2. 配置gpg秘钥
  3. 配置pom.xml和setting.xml
  4. mvn clean deploy

1.在snoatype注册账号并提交issue工单

在这里插入图片描述

概要:Publish new maven package
描述:create new package
groupId:可以随便填,sonatype工作人员会根据你填写的project-url帮你修改为固定的groupId
project-url:项目所在地址,如果是gitlab或者gitee就填git对应地址
scm-url:和project-url保持一致即可
其他项:随便填
等待五分钟后系统会给你发邮件告知你可以进行验证了,有两种方式,一种是创建指定git仓库,另一种是添加一个txt文本到你的域名解析里,两种方式都是为了验证你的项目属于你,如下图所示。
在这里插入图片描述
验证通过后,同样会发邮件给你
在这里插入图片描述

2.安装并设置gpg密钥

gpg的作用是生成密钥对,会用于后续我们组件发布的校验。
下载地址: https://www.gnupg.org/download/,在安装完成后,需要创建密钥对,UI和命令的模式二者选一即可。
UI模式:
运行kleopatra程序,新建密钥对,自己填的密码要记住,后面每次deploy都要进行验证。
在这里插入图片描述
命令行模式:
生成key:gpg --gen-key
Real name: 名字
Email address: 邮箱(自己的邮箱
You selected this USER-ID:
Change (N)ame, (E)mail, or (O)kay/(Q)uit? o
之后往下,会让你输入用户名和邮箱,还有一个Passphase(密码输入两次,务必牢记,后续要用到)
查看公钥:
gpg --list-keys
pub rsa2048 2020-06-30 [SC] [expires: 2022-06-30]
85B594371E0A38D70243B1E927EDC1D952E45334
uid [ultimate] aaa 11111111@qq.com
sub rsa2048 2020-06-30 [E] [expires: 2022-06-30]
发布公钥:pub 下面那一长串就是key
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 85B594371E0A38D70243B1E927EDC1D9

3.配置setting.xml,添加server配置

在这里插入图片描述
这个id要和下面pom添加的distributionManagement的仓库id保持一致

4.配置pom.xml

4.1 父pom进行替换,可以减轻很多配置包袱

<parent>
  <groupId>org.sonatype.oss</groupId>
  <artifactId>oss-parent</artifactId>
  <version>7</version>
</parent>

4.2 添加构建仓库路径,打包插件

<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>-->
<!--				<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>

5.执行deploy

执行 mvn clean deploy -U 即可打包发布

6.依赖拉取

依赖拉取需要指定仓库,因为从2021.2开始,所有新构建包统一上传到s01.oss.sonatype.org,而不是oss.sonatype.org,如果不配置的话,会去默认的oss.sonatype.org拉取。

    <repositories>
        <repository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </repository>
        <repository>
            <id>ossrh1</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </repositories>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挖你家服务器电缆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值