mac如何将jar包上传到maven中央仓库中

mac如何将jar包上传到maven中央仓库中

  1. 准备sonatype账号

    sonatype官网:https://central.sonatype.com/

    建议使用GitHub账号注册,方便

  2. 之后选择查看用户信息

  3. 选择此选项获取用户token的username与password,建议提前复制一下谨防丢失

之后在右上角点击Publish按钮,进入发布页面,创建一个namespace命名空间,自己的项目maven坐标的groupId就是命名空间,每次在本地deploy的jar包都需要在deployments页面内手动提交到maven中央仓库中;

xml 复制代码
<groupId>cn.muzisheng.pear</groupId>
<artifactId>pear-spring-boot-starter</artifactId>
<version>1.1.14</version>
  1. 配置本地maven的settings.xml文件

    修改server为刚才的信息

    记住自己设置的id,这个是自定义的

  2. 配置项目的pom文件

    在sonatype发布插件publishingServerId部分是我们需要替换的内容,其他的按照我的大概率也能运行哈

    java 复制代码
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
    
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>17</source>
                    <target>17</target>
                    <compilerArgs>
                        <arg>-parameters</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
    
            <!--sonatype发布插件-->
            <plugin>
                <groupId>org.sonatype.central</groupId>
                <artifactId>central-publishing-maven-plugin</artifactId>
                <version>0.4.0</version>
                <extensions>true</extensions>
                <configuration>
                    <publishingServerId>cn.muzisheng</publishingServerId>
                    <tokenAuth>true</tokenAuth>
                    <autoPublish>false</autoPublish>
                </configuration>
            </plugin>
            <!-- 生成source -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.0.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <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>
            </plugin>
            <!-- 工程文件自动签名-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.6</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
  3. 之后到本地签名部分,我们需要安装gpg,gpg 是一个强大的工具,涵盖了 加密、解密、签名、验证、密钥管理

    在终端中使用命令

    brew install gpg

    如果没有安装brew工具的话可以在其他博客先安装brew

  4. 使用gpg工具配置

    首先使用gpg --gen-key命令创建gpg密钥,将密钥记住后会让我们输入用户姓名跟电子邮箱,之后是注释,大致如下

    cmd 复制代码
    Real name: ****.***.**
    Email address: ********@******
    Comment: (可以留空,直接回车)
    You selected this USER-ID:
        "****.***.** <*********@*****>"
    
    Change (N)ame, (E)mail, or (O)kay/(Q)uit? O

    输入O确认信息;

    之后gpg会要求输入密码,这个很重要,请一定记住,之后每次将项目deploy可能需要输入密码;

    使用gpg --list-keys查看我们创建的密钥列表,有没有之前我们创建的数据,类似如下:

    cmd 复制代码
    pub   rsa4096 2025-04-01 [SC] [expires: 2028-03-31]
          58334ECBA42693D**0893D0B3E4CCFB***9646
    uid                      ****.***.** <******@****>
    sub   rsa4096 2025-04-01 [E] [expires: 2028-03-31]

    最后,将你的密钥上传到密钥服务器中

    复制代码
    gpg --keyserver keyserver.ubuntu.com --send-keys 58334ECBA42693D**0893D0B3E4CCFB***9646

    以上的密钥包括id等信息都要替换成你自己的哦!

    做完后尝试deploy吧!

  5. 总结(大致步骤这样,具体操作可以搜索其他博客与ai哦)

    • 登陆sonatype注册用户,获取用户token,创建命名空间;
    • token写到本地maven中央仓库的配置文件settings里,自定义一个id;
    • 在项目的pom文件中添加插件,绑定上id;
    • 最后使用gpg工具,在本地创建一个密钥,并发布到密钥服务器中,用于对上传的信息进行加密;

    下课

相关推荐
wangbing112531 分钟前
springboot应用关闭时触发动作
java·spring boot·后端
weixin_460443564 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
海鸥-w7 小时前
什么是AOP
java
Cc.Y7 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
paopaokaka_luck7 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787057 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
阿森_dev7 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
Sarvartha7 小时前
Lambda 表达式和函数式接口
java·开发语言
计算机毕业设计杰瑞7 小时前
【计算机毕设精品】基于SpringBoot的一体化教务与学业质量管理系统的设计与实现,附源码_增删改查_java项目_可完美运行部署_网站项目
java·spring boot·课程设计
colinu8 小时前
C++ 异步任务与线程生命周期:`std::async`、`future`、`thread`、`jthread` 与协作式退出
java·jvm·c++