码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Maven发布自己项目到maven中央仓库


    目录

    1. sonatype网站相关

    1.1  注册sonatype网站账号

    1.2  登录后,新建问题

     3. 配置maven--setting.xml

    4. 配置maven--pom.xml

    4.1 添加个人信息

    4.2 添加开源版权信息

    4.3 添加scm信息

    4.4 添加插件

    4.4 添加build

    5. 下载GPG加密

    5.1 安装Gpg4Win

    5.2 创建密钥对

     5.3 验证版本

    5.4 查看已生成的公私要信息

     5.5 发送公钥信息到ubuntu.com服务器

     5.6 查询是否发送成功

     5.7 发送公钥异常:gpg: keyserver send failed: Unknown error

    6. 上传到maven中央仓库

    6.1 命令行:

    6.2 idea 执行

    7 发布结果


    1. sonatype网站相关

    1.1  注册sonatype网站账号

    Sign up for Jira - Sonatype JIRA

    1.2  登录后,新建问题

     

     

    新建后,等待工作人员评论

     

    如果评论这样的话,在github上创建一个对应空项目。

     

    这样就是认证通过了,可以上传项目到中央仓库。

     3. 配置maven--setting.xml

     在 标签下添加

    1. <server>
    2. <id>ossrhid>
    3. <username>你sonatype账号username>
    4. <password>sonatype 密码password>
    5. server>

    4. 配置maven--pom.xml

    4.1 添加个人信息

    1. <name>object-comparatorname>
    2. <description>Java object property value comparatordescription>
    3. <url>https://github.com/jinchunzhao/object-comparatorurl>
    4. <developers>
    5. <developer>
    6. <id>jinchunzhaoid>
    7. <name>jinchunzhaoname>
    8. <email>15136708953@163.comemail>
    9. developer>
    10. developers>

    4.2 添加开源版权信息

    根据项目的开源协议

    1. <licenses>
    2. <license>
    3. <name>The Apache Software License, Version 2.0name>
    4. <url>http://www.apache.org/licenses/LICENSE-2.0.txturl>
    5. license>
    6. licenses>

    4.3 添加scm信息

    1. <scm>
    2. <connection>https://github.com/jinchunzhao/object-comparator.gitconnection>
    3. <url>https://github.com/jinchunzhao/object-comparatorurl>
    4. scm>

    4.4 添加插件

    distributionManagement 下面的id必须要和你 maven settings.xml里面的id配置的一模一样

    1. <profiles>
    2. <profile>
    3. <id>releaseid>
    4. <activation>
    5. <activeByDefault>trueactiveByDefault>
    6. activation>
    7. <build>
    8. <plugins>
    9. <plugin>
    10. <groupId>org.apache.maven.pluginsgroupId>
    11. <artifactId>maven-source-pluginartifactId>
    12. <version>2.2.1version>
    13. <executions>
    14. <execution>
    15. <phase>packagephase>
    16. <goals>
    17. <goal>jar-no-forkgoal>
    18. goals>
    19. execution>
    20. executions>
    21. plugin>
    22. <plugin>
    23. <groupId>org.apache.maven.pluginsgroupId>
    24. <artifactId>maven-javadoc-pluginartifactId>
    25. <version>2.9.1version>
    26. <configuration>
    27. <show>privateshow>
    28. <nohelp>truenohelp>
    29. <charset>UTF-8charset>
    30. <encoding>UTF-8encoding>
    31. <docencoding>UTF-8docencoding>
    32. <additionalparam>-Xdoclint:noneadditionalparam>
    33. configuration>
    34. <executions>
    35. <execution>
    36. <phase>packagephase>
    37. <goals>
    38. <goal>jargoal>
    39. goals>
    40. execution>
    41. executions>
    42. plugin>
    43. <plugin>
    44. <groupId>org.apache.maven.pluginsgroupId>
    45. <artifactId>maven-gpg-pluginartifactId>
    46. <version>1.6version>
    47. <executions>
    48. <execution>
    49. <phase>verifyphase>
    50. <goals>
    51. <goal>signgoal>
    52. goals>
    53. execution>
    54. executions>
    55. plugin>
    56. <plugin>
    57. <groupId>org.apache.maven.pluginsgroupId>
    58. <artifactId>maven-compiler-pluginartifactId>
    59. <version>3.7.0version>
    60. <configuration>
    61. <source>1.8source>
    62. <target>1.8target>
    63. configuration>
    64. plugin>
    65. <plugin>
    66. <groupId>org.apache.maven.pluginsgroupId>
    67. <artifactId>maven-release-pluginartifactId>
    68. <version>2.5.1version>
    69. plugin>
    70. <plugin>
    71. <artifactId>maven-deploy-pluginartifactId>
    72. <version>2.8.2version>
    73. <executions>
    74. <execution>
    75. <id>default-deployid>
    76. <phase>deployphase>
    77. <goals>
    78. <goal>deploygoal>
    79. goals>
    80. execution>
    81. executions>
    82. plugin>
    83. <plugin>
    84. <groupId>org.sonatype.pluginsgroupId>
    85. <artifactId>nexus-staging-maven-pluginartifactId>
    86. <version>1.6.7version>
    87. <extensions>trueextensions>
    88. <configuration>
    89. <serverId>ossrhserverId>
    90. <nexusUrl>https://s01.oss.sonatype.org/nexusUrl>
    91. <autoReleaseAfterClose>trueautoReleaseAfterClose>
    92. configuration>
    93. plugin>
    94. <plugin>
    95. <groupId>org.apache.maven.pluginsgroupId>
    96. <artifactId>maven-scm-pluginartifactId>
    97. <version>1.8.1version>
    98. plugin>
    99. plugins>
    100. build>
    101. <distributionManagement>
    102. <snapshotRepository>
    103. <id>ossrhid>
    104. <name>Sonatype Nexus Snapshotsname>
    105. <url>https://s01.oss.sonatype.org/content/repositories/snapshots/url>
    106. snapshotRepository>
    107. <repository>
    108. <id>ossrhid>
    109. <name>Nexus Release Repositoryname>
    110. <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/url>
    111. repository>
    112. distributionManagement>
    113. profile>
    114. profiles>

    4.4 添加build

    1. <build>
    2. <plugins>
    3. <plugin>
    4. <groupId>org.apache.maven.pluginsgroupId>
    5. <artifactId>maven-compiler-pluginartifactId>
    6. <configuration>
    7. <source>8source>
    8. <target>8target>
    9. configuration>
    10. plugin>
    11. plugins>
    12. build>

    5. 下载GPG加密

    Gpg4win - Download Gpg4win

    5.1 安装Gpg4Win

    傻瓜式安装

    5.2 创建密钥对

     5.3 验证版本

    ggp --version

     

    5.4 查看已生成的公私要信息

    gpg --list-keys

     

     5.5 发送公钥信息到ubuntu.com服务器

    gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 刚刚生成的公钥 

     5.6 查询是否发送成功

    gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 刚刚发送的公钥 

     5.7 发送公钥异常:gpg: keyserver send failed: Unknown error

    适用我的解决办法是:

    执行下面两个命令

    1. gpgconf --kill dirmngr
    2. dirmngr --debug-all --daemon --standard-resolver

    在另一个终端上运行推送公钥命令就可以了。

    6. 上传到maven中央仓库

    6.1 命令行:

    mvn clean deploy -P release -Dmaven.test.skip=true
    1. # 这里的 -P release与pom.xml中的标签一致
    2. <profile>
    3. <id>releaseid>
    4. profile>

    6.2 idea 执行

    执行成功

    7 发布结果

    表明已经发布成功了。

    这样就可以到 Maven Central Repository Search 去查刚刚发布的项目,如果没有查到也关系,同步需要一段时间。

  • 相关阅读:
    机器学习笔记之线性回归——从概率密度函数角度认识岭回归
    074:vue+openlayers通过拖拽,旋转放缩地图(示例代码)
    AI辅助研发正在成为造福人类的新生科技力量
    Mysql的主从复制和读写分离
    nginx反向代理配置
    centos8安装rabbitmq(rpm包)
    [附源码]JAVA毕业设计个人信息管理系统(系统+LW)
    Nginx实现反向代理、负责均衡、动静分离
    python+pytest接口自动化(9)-cookie绕过登录(保持登录状态)
    【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day08
  • 原文地址:https://blog.csdn.net/jinchunzhao123/article/details/125832284
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号