Mac利用idea把自己写的jar包上传到maven仓库中

写java一年了,一直通过maven用别人的jar包,就想能不能自己也上传一些有用的jar包。
然后在成功申请域名了以后,我觉得是时候了

1.因为实验室用Java的也不多,没必要局域网自己搭私服,我也不想搭,虽然我也下了nexus开源离线版,可以本地搭建,但是只是试验
2.前前后后弄了一圈奇奇怪怪的异常,所以记录一下

第一步:申请一个工单

sonatype工单网站

    1. 注册帐号,密码要记住,因为配本地maven的时候需要写上去,密码要有四种格式,大小写字母数字和特殊符号,特殊符号不要用&,因为我第一次用了&作为密码后,maven的setting文件显示那一行报错,我最后用的是$
  1. 点击上面的CREATE 创建工单
  2. 下面这个页面需要认真填,Summary大概说一下你要上传的jar包是干什么的,groupid我写的就是info.unclewang,如果你没有域名,可以填com.github等一些开源使用的网址,具体如何使用参考这个网站Mac利用idea把自己写的jar包上传到maven仓库中
  3. Project URL是开源需要git地址,他都有提示,用idea可以直接分享项目到github上,很方便,具体git怎么设置就不说了Mac利用idea把自己写的jar包上传到maven仓库中
  4. SCM地址:一般就是Project URL+".git",变成资源控制系统的地址
  5. 创建了以后可以在Issues里面查看Mac利用idea把自己写的jar包上传到maven仓库中
  6. 这个需要有人审核,所以时间我也不知道,我看有的博客说很长时间,我5分钟就好了,变成了绿色的RESOLVED,这一步基本就说清楚了Mac利用idea把自己写的jar包上传到maven仓库中
  7. 管理员主要是审核Group Id

第二步:配置gpg加密jar包上传到构件仓库里面,经过上传——close——Release三步之后就能使用了

构件仓库地址可以查看https://oss.sonatype.org/#welcome
首先说明,加密这一步是必须的,开始我参考一个博客说这一步是为了防篡改,那肯定的呀,我一想就试一试,先不加密,结果上传的包在仓库里无法被关闭(close)然后公开(Release)到中央maven仓库里,所以我想告诉大家不要想着省这个步骤

  1. 我用的mac,但是好多教程用的是windows,我这里说一下mac用gpg的方法,gpg还是有开源版和软件包,我两个都使用了,Ubuntu只带的好像就有( sudo apt-get install gnupg),debian自带一部分,mac可以直接brew install gpg,也可以去官网gpg下载mac版本,有两个版本,我用的是第一个Mac GPG,安装以后用你git的邮箱去生成rsa秘钥Mac利用idea把自己写的jar包上传到maven仓库中这一种算是比较快的,要是你用terminal去生成秘钥对就是gpg --gen-key,然后要填和上面差不多的东西,还要敲敲键盘,动动鼠标,生成随机值帮助产生密钥。
  2. 然后右键把public keys送到key servers这个地方
  3. 然后配置maven的settings.xml文件,主要就是在servers下面添加server
     <server>
       <id>sonatype-nexus-snapshots</id>
       <username>第一步注册网站的账户</username>
       <password>第一步注册网站的密码</password>
     </server>
     <server>
       <id>sonatype-nexus-staging</id>
       <username>第一步注册网站的账户</username>
       <password>第一步注册网站的密码</password>
     </server>
    
  4. 项目里的pom文件配置,你需要改的是scm和develop的两个里面的信息,其他如果按照上面配置,就不需要配置
     <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/1000-7/expert_es</url>
         <connection>https://github.com/1000-7/expert_es.git</connection>
         <developerConnection>https://github.com/1000-7/expert_es</developerConnection>
     </scm>
     <developers>
         <developer>
             <name>wangxin</name>
             <email>x.wang@whu.edu.cn</email>
             <url>https://github.com/1000-7/expert_es</url>
         </developer>
     </developers>
     <distributionManagement>
         <snapshotRepository>
             <!-- 这个id和setting.xml对应  -->
             <id>sonatype-nexus-snapshots</id>
             <name>OSS Snapshots Repository</name>
             <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
         </snapshotRepository>
         <repository>
             <!-- 这个id和setting.xml对应  -->
             <id>sonatype-nexus-staging</id>
             <name>OSS Staging Repository</name>
             <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
         </repository>
     </distributionManagement>
    
  5. 开始打包,首先勾选settings里面配置的org.sonatype.oss这个文件,然后在项目文件夹下,mvn clean deploy -P sonatype-oss-release -Dgpg.passphrase="你刚才在gpg生成密钥对设置的密码" -Dmaven.test.skip=true就可以了Mac利用idea把自己写的jar包上传到maven仓库中
  6. 这一步很重要,但是博客说的都很简单,估计和我一样都是弄好了总结,中间就没法放图了。。。。大概过程就是先去这个构件仓库网站,登陆以后,点击左边的Staging Repositories可以看到你刚上传的还是open状态的包,然后选中点击上面的close,然后等一会close所触发的几个事件,大概就是验证你有没有jar包,有没有加密相关的,需要等几分钟然后点击release,然后会进行邮箱验证,然后就release成功了,接着就等一个小时,就可以在中央仓库中查到了maven仓库中查找
  7. 验证,开心
<dependency>
<groupId>info.unclewang</groupId>
<artifactId>expert_es</artifactId>
<version>1.0.0</version>
</dependency>

参考

1.如何发布自己的 jar 包到 maven 中央仓库
2.如何把自己的Jar包上传到 maven 官方仓库中,Maven上传图文讲解

发表评论

电子邮件地址不会被公开。