一、注册Jira
Sonatype JIRAhttps://issues.sonatype.org/secure/Dashboard.jspa
二、新建issue
提交后,等待5-10分钟,会收到中央机器人的评论,如下:
在这里,我没有自己的域名,此时:
1、机器人给我们分配了一个新的group id(如图第一个蓝色框)。于是再次编辑该issue,填入新分配的group id后提交即可。
2、机器人要求我们在项目托管平台新建一个它命名的开源项目(如图第二个蓝色框),并且把它公开。那我们去新建即可。
3、等你做完这些事的我时候,记得添加一条评论,告诉它你做完了。
又过了5-10分钟,机器人发来一条评论,告诉你你现在可以发布私有jar包到Nexus Repository Manager这个他们的nexus中去了,nexus的用户名和密码就是你Jira的用户名密码。
以上步骤,一是为了验证你是否是这个项目的所有人 ,二是为你开通了maven中央仓库的nexus的账号。
三、pom文件和settings文件配置,开始发布到nexus
pom文件
包名必须为issue中分配的,否则在maven clean deploy的时候根本无法上传成功。且除licenses外其它是必备的,否则在nexus发布的时候无法通过验证。
以及这些也是必须的:
<build>
<plugins>
<!-- 打成源码包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- javadoc -->
<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>
<configuration>
<additionalJOptions>
<additionalJOption>-Xdoclint:none</additionalJOption>
</additionalJOptions>
</configuration>
</plugin>
<!-- Sonatype Nexus Repository Manager -->
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.8</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
<!-- GPG Signed Components -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>ossrh</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!--发布到Maven中央仓库-->
<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>
settings文件
<servers>
<server>
<id>ossrh</id>
<username>user</username>
<password>123456</password>
</server>
<server>
<id>ossrh</id>
<username>user</username>
<password>123456</password>
</server>
</servers>
<profiles>
<profile>
<id>ossrh</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.executable>gpg</gpg.executable>
<gpg.passphrase>你的gpg密码</gpg.passphrase>
</properties>
</profile>
</profiles>
备注:username和password为你的nexus账号密码,而gpg的key和密码由下面步骤生成的。
gpg是一个组件签名工具。这里需要安装git,并把git的gpg工具配置到path环境变量中。比如我gpg安装目录为:C:\Program Files\Git\usr\bin,需要把这个配置到环境变量中去,完了记得重启idea。
接着:
1、生成gpg的key和密码
打开终端,输入:gpg --gen-key
输入后会弹窗让你设置这个key的密码
2、查询已经生成的gpg的key
gpg --list-keys
你的key为:0x加上红框中的8位字符
3、上传key
gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys gpg的key
4、执行maven clean deploy开始上传
四、正式发布
等待上传成功后,来到Nexus Repository Manager,登录后点击Staging Repositories:
refresh下,应该会出现你刚上传的项目,点击close,点击confirm,这时系统会开始验证这个jar包是否正确,等待几分钟,如果正确,则release按钮可以被点击了。此时点击release按钮,输入一些你的jar包介绍后点击confirm,就开始正式发布到maven中央仓库了。再过一会,你会收到一条Jira机器人的评论:
告诉你的jar包已经开启了同步,大概会在30分钟后被释放到中央仓库,至此,就完成了。
你可以在以下两个网站中搜索你上传的jar包:
Central Repository:
Maven Central