最近闲着无聊,突然想到将自己做的jar包上传Maven中央仓库以供使用,就是闲着蛋疼,说干就干,查阅了无数资料,遇到不少坑,现将方法记录下来以免以后忘记了,也就此机会重新学习下。
大致步骤:
1.创建工单 https://issues.sonatype.org/secure/Dashboard.jspa
2.GPG生成密钥 https://www.gpg4win.org/
3.配置pom.xml和settings文件
4.部署jar包
一、创建工单
第一步:注册JIRA账号(https://issues.sonatype.org/secure/Dashboard.jspa)
注册不多说了,填完信息下一步就是了!
第二步:创建Issue项目
点击页面上的create,新建一个Issue
有*标记是必填的,其它可以不填,以下是填写说明
summary:项目说明,能说明你的项目就行了
groupId:项目唯一标识,个人网站或公司网站域名倒写,例如com.github.xinxiaomu
project URL:写项目路径,或个人主页都可以
SCM URL:和项目路径一样就可以了
第三步:等待Issue通过
网上教程说,审核要1~2天,我提交审核的时候基本秒过的(可能它们遇到周末了吧,个人猜测哈哈),还有如果你groupId是个人或
公司的,会问你是否是你自己的域名,你回复是就可以了,如果是用git这种开源的域名则不用,我使用的是git的网址,几分钟就通
过了,通过后会收到信息:
二、GPG生成密钥
第一步:下载安装:https://www.gpg4win.org/
第二步:生成密钥
命令:gpg --full-generate-key 或gpg --gen-key
第三步:发布公钥到GPS key-servers
命令:gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 965310440A0AF2FD
三、 配置pom.xml和settings文件
第一步:安装maven
第二步:配置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和创建Issue时的一致,否则没有权限-->
<groupId>com.github.xinxiaomu</groupId>
<artifactId>swagger-ui-xin</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>${project.groupId}:${project.artifactId}</name>
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>7</version>
</parent>
<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>
<scm>
<url>https://github.com/xinxiaomu/swagger-ui</url>
<connection>scm:git:https://github.com/xinxiaomu/swagger-ui.git</connection>
<developerConnection>scm:git:git@github.com:xinxiaomu/swagger-ui.git</developerConnection>
</scm>
<developers>
<developer>
<name>hanxin</name>
<email>342595194@qq.com</email>
<url>https://github.com/xinxiaomu</url>
</developer>
</developers>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<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>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</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>
<distributionManagement>
<snapshotRepository>
<!--和settings中的一致-->
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<!--和settings中的一致-->
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
</project>
第三步:配置settings.xml
文件在maven目录conf文件夹中,账号和密码是上面注册JIRA的账号和密码
<servers>
<server>
<id>ossrh</id>
<username>账号</username>
<password>密码</password>
</server>
<server>
<id>ossrh</id>
<username>账号</username>
<password>密码</password>
</server>
</servers>
四、部署jar包
进入需要上传的项目目录,pom.xml所在目录,执行命令:
mvn clean deploy或mvn clean deploy –P release –Dgpg.passphrse=xxxxx
完成后,登陆https://oss.sonatype.org账号和密码也是注册的JIRA账号和密码
选择Staging Repositories ,并找到自己上传的文件。
找到后选中点击左上方的'close',并等待...等到通过后(状态从open变为close,此时release按钮变亮),点击release按钮,
等待10分钟左右就可以用了。
如果是第一次上传,那么需要在Issue中回复才可以:
PS:不要忘记安装JDK环境。
参考资料:
一步一步教你发布构件到Maven中央仓库:https://blog.csdn.net/xiajiqiu/article/details/77607492
OSSRH Guide: http://central.sonatype.org/pages/ossrh-guide.html
发布要求、规范:http://central.sonatype.org/pages/requirements.html
PGP签名使用:http://central.sonatype.org/pages/working-with-pgp-signatures.html