小于博客 小于博客
首页
  • Java学习笔记
  • Docker专区
  • 实战教程
  • Shell
  • 内存数据库
  • Vue学习笔记
  • Nginx
  • Php
  • CentOS
  • Docker
  • Gitlab
  • GitHub
  • MySql
  • MongoDB
  • OpenVPN
  • 配置文件详解
  • Other
  • ELK
  • K8S
  • Nexus
  • Jenkins
  • 随写编年
  • 电影音乐
  • 效率工具
  • 博客相关
  • 最佳实践
  • 迎刃而解
  • 学习周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • 网站状态 (opens new window)
    • json2go (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

小于博客

行者常至,为者常成
首页
  • Java学习笔记
  • Docker专区
  • 实战教程
  • Shell
  • 内存数据库
  • Vue学习笔记
  • Nginx
  • Php
  • CentOS
  • Docker
  • Gitlab
  • GitHub
  • MySql
  • MongoDB
  • OpenVPN
  • 配置文件详解
  • Other
  • ELK
  • K8S
  • Nexus
  • Jenkins
  • 随写编年
  • 电影音乐
  • 效率工具
  • 博客相关
  • 最佳实践
  • 迎刃而解
  • 学习周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • 网站状态 (opens new window)
    • json2go (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Java学习笔记

  • Docker专区

  • Shell编程

  • 实战教程

    • git教程

    • idea教程

    • linux教程

    • markdown教程

    • maven教程

      • JAVA 如何上传自己的jar包到Maven中央仓库
        • 1.发布Jar包到Maven中央仓库
        • 2.注册帐号
        • 3.Jira申请
        • 4.gpg 环境安装
        • 5.配置maven settings.xml
        • 6.在项目的pom.xml文件中
        • 7.deploy
        • 8.发布
    • 数据库部分

    • 电脑操作

  • 内存数据库

  • Vue学习笔记

  • 编程世界
  • 实战教程
  • maven教程
小于博客
2024-01-20
目录

JAVA 如何上传自己的jar包到Maven中央仓库

JAVA 如何上传自己的jar包到Maven中央仓库

# 1.发布Jar包到Maven中央仓库

在项目开发过程中,我们常常会使用 Maven / Gradle 从仓库拉取开源的第三方 jar 包,可能是私有仓库,可能是 Maven 中央仓库,也可能是第三方的镜像。本文将一些简单实用的操作步骤和示例,带领大家将自己写好的代码或开源项目发布到 Maven中央仓库( https://mvnrepository.com )中,让其他人可以直接依赖你的 jar 包,而不需要先下载你的代码 / jar 后 install 到本地。 Maven中央仓库并不支持直接发布 jar 包,需要将 jar 包发布到一些指定的第三方Maven仓库,然后该仓库再将 jar 包同步到 Maven中央仓库,Sonatype便是 Maven中央仓库指定的暂存库。

# 2.注册帐号

入口有点难找,提示一下,在 Build 选项卡里面 https://issues.sonatype.org/secure/Signup!default.jspa

密码设置十分变态,12位,必须包含大小写数字特殊字符,有必要拿小本本记一下。而且最好不要设置在 xml 中需要转义的特殊字符,比如 &,否则后面配置 xml 时还要转义!不要问我为啥知道的。

# 3.Jira申请

点击新建按钮或者直接访问 https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134 ,提一个 issue,只有申请通过了才有可能上传到中央仓库上,一般 5 分钟左右会有回应,我昨晚 10 点左右申请的,不知道是不是时差问题他们回应比较快:

  • Project选择【Community Support - Open Source Project Repository Hosting (OSSRH)】
  • Issue Type:选择【New Project】
  • Summary和Description :自己填,注意要用英文
  • Group Id:这个必须要注意,如果你用的是GitHub, 一定要是 io.github.你的github用户名, 例如我的项目地址是: https://github.com/admin4j/common-http, 那我的 groupId就是 io.github.admin4j.如果你有自己的域名和项目地址也可以,官方人员会询问你是否有这个域名的所有权.在你项目的pom里一定要使用这个groupId,最好包路径也使用
  • Project URL: 是你的项目地址
  • SCM url: 是你的项目git地址
  • Username(s): 可以不用填,这是能辅助你提交项目的合作人的帐号,前提是他也得在这个Jira注册

其他使用默认值就行了 大概十分钟会收到恢复,如果你的 Group Id 随便写的话会出下面的问题

# 4.gpg 环境安装

gpg的主要作用是生成密钥对,会用于后续我们组件发布的校验。

  1. 载地址: https://www.gnupg.org/download/ , 安装时会附带安装UI程序kleopatra
  2. 在安装完成后,运行kleopatra程序,新建密钥对
  3. 导出证书 发布证书

# 5.配置maven settings.xml

<server>
    <id>ossrh</id>
    <username>hnyufushan</username>
    <password>@Cckmima531010</password>
</server>
1
2
3
4
5

# 6.在项目的pom.xml文件中

<licenses>
   <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
      <comments>A business-friendly OSS license</comments>
   </license>
</licenses>
<scm>
   <url>https://gitee.com/hnyufushan_admin/bzglpt</url>
   <connection>https://gitee.com/hnyufushan_admin/bzglpt.git</connection>
</scm>
<developers>
   <developer>
      <name>hnyufushan</name>
      <id>hnyufushan</id>
      <email>82271092@qq.com</email>
      <roles>
         <role>Developer</role>
      </roles>
      <timezone>+8</timezone>
   </developer>
</developers>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

发布到maven中央仓库会要求我们在上传jar到同时,必须同步发布对应到Javadoc、source、asc(利用gpg生成到校验),所以需要在maven中添加以下构建插件

<profiles>
   <profile>
      <id>default</id>
      <activation>
         <activeByDefault>true</activeByDefault>
      </activation>
      <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>
               <configuration>
                  <!-- jdk1.8要加上,1.7要去掉,否则会报错 -->
                  <additionalJOptions>
                     <additionalJOption>-Xdoclint:none</additionalJOption>
                  </additionalJOptions>
               </configuration>
               <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>
   </profile>
</profiles>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79

# 7.deploy

在你的项目下:mvn clean deploy 或者IDE中配置好刚才的setting.xml,然后deploy,日志中出现SUCCESS ,成功了。

# 8.发布

上面执行完成之后,登陆nexus: https://s01.oss.sonatype.org/#stagingRepositories 点击上方的Close,会检测你的jar包是否存在问题,如果存在问题,点击下方的Activity即可查看具体的问题,照着问题修复即可。如果有问题要把原包删除,点击drop即可,再重新deploy。 检测完成后没问题后,上方的release就会变成可点击的状态,点击release后,会收到一份邮件。需要等待一会大概半小时才同步到maven仓库,大概好几个小时才可以可以在 https://search.maven.org/ 中搜到。 至此。已完成将项目发布至中央仓库。

上次更新: 2024/02/28, 13:00:35

← Markdown进阶用法教程 数据库代码汇总→

最近更新
01
SpringBoot 快速实现 api 加密!
03-21
02
SpringBoot整合SQLite
03-07
03
SpringBoot配置使用H2数据库的简单教程
02-21
更多文章>
Theme by Vdoing | Copyright © 2017-2024 | 点击查看十年之约 | 豫ICP备2022014539号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式