• 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 去查刚刚发布的项目,如果没有查到也关系,同步需要一段时间。

  • 相关阅读:
    离散数学(十二):关系的幂运算与关系的性质
    详细讲解FuzzBench如何添加新的Fuzzer
    Flutter案例日程安排首页效果 Lottie动画与Shimmer实现的微光效果
    2021年中国研究生数学建模竞赛C题——帕金森病的脑深部电刺激治疗建模研究
    Lazada店铺如何产号高效补单?(测评自养号技术详解篇)
    Redis详解(一)
    【ICE】2:基于webrtc的 ice session设计及实现
    Mybatis要点总结
    Pytest单元测试框架 —— Pytest+Allure+Jenkins的应用
    Linux bash特性及bash脚本编程初步
  • 原文地址:https://blog.csdn.net/jinchunzhao123/article/details/125832284