前言
应为在多个Java项目中使用相同的库,来回导入jar包又比较麻烦,Maven私人仓库感觉不太行,所以我决定在Maven中央仓库中发布自己的项目,但是过程有点繁琐,我也是折腾好久才弄明白的。
注册Sonatype账号
打开 Maven中央仓库 ,点击右上角Sign In,在点击Sign Up进入注册页面。
填写好自己的个人信息后注册即可。
添加并验证Namespace
点击注册新的Namespace,这里的Namespace要和项目中的groupId保持一致。
注册好之后点击验证Namespace,然后需要你在dns提供商添加一条TXT解析记录,添加好后点击验证,验证完成即可。
安装GPG并上传公钥
打开 GPG官网 下载并安装好GPG
打开命令行并输入以下命令
gpg --gen-key
然后输入姓名和邮箱,并在弹窗中输入密钥密码
生成成功后就会显示秘钥信息,中间的
27B27A9C187845CB1546E63584D3EDB882F830EF
就是秘钥标识上传并验证公钥,上传后需要等一会再验证,不然会显示
No Data
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys [秘钥标识]
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys [秘钥标识]
生成并配置用户Token
1. 打开 Maven中央仓库我的账号 点击生成用户Token
<server>
<id>${server}</id>
<username>username</username>
<password>password</password>
</server>
${server}
:可以自己随便填写
2. 然后打开 ~/.m2/settings.xml
文件添加上面的配置
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>${server}</id>
<username>username</username>
<password>password</password>
</server>
</servers>
</settings>
项目pom.xml的配置
pom.xml文件中项目的groupId
要和注册的Namespace
保持一致,下面这些是必须配置的,不然会导致上传失败。
项目信息
<name>[项目名称]</name>
<description>[项目描述]</description>
<url>[Git仓库地址]</url>
开发者信息
<developers>
<developer>
<id>[开发者ID]</id>
<name>[开发者姓名]</name>
<email>[开发者邮箱]</email>
<roles>
<role>[开发者角色]</role>
</roles>
</developer>
</developers>
证书配置
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
打包配置,讲
publishingServerId
修改为上面配置的${server}
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.11.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.8.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>${server}</publishingServerId>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.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-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>15</source>
<target>15</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.8</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
上传Jar包
再命令行中打开项目
mvn clean deploy
上传时会弹出窗口,输入密钥密码就行了
上传成功后会如有下显示
如果是上传失败,就打开 Maven中央仓库部署页(Deployments ) ,查看错误信息,这里就不多阐述了。
上传成功后并没有发布,打开 部署页面 点击发布(Publish)就行了,过几分钟就会显示已发布(Published)。
评论