发布Jar包到Maven中心仓库

本文介绍如何将Maven项目发布至Maven中央仓库,包括注册账号、配置pom文件、签名及发布流程等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录:

1. 准备

注册
https://issues.sonatype.org/ 中注册账号,登陆之后,选择create issue。

create issue

注意:group id需要证明自己拥有这个域名,通过发送邮件的方式。

after_issue

第二天,通过人工审核之后,status的状态就变成了 RESOLVED,至此,我们完成了发布前的准备工作。

issue_comments

2. 配置maven pom file

1.主要配置以下几个地方:

  <modelVersion> 
  <groupId>
  <artifactId>
  <version>
  <packaging>
  <name>
  <description>
  <url>
  <licenses>
  <scm><url>
  <scm><connection>
  <developers>

2.确保 <version> 标签不包含 SNAPSHOT
3.add some info to pom file

<licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>


    <issueManagement>
        <url>https://github.com/Bytom/bytom-java-sdk/issues</url>
        <system>GitHub Issues</system>
    </issueManagement>

    <developers>
        <developer>
            <name>successli</name>
            <email>successli@outlook.com</email>
            <url>https://github.com/successli</url>
        </developer>
    </developers>

    <scm>
        <connection>scm:git:git@github.com:Bytom/bytom-java-sdk.git</connection>
        <developerConnection>scm:git:git@github.com:Bytom/bytom-java-sdk.git</developerConnection>
        <url>git@github.com:Bytom/bytom-java-sdk.git</url>
    </scm>

4.add some plugins to pom file

<profiles>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <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>
                        <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>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.3</version>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <distributionManagement>
        <snapshotRepository>
            <id>oss</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>oss</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

maven-assembly-plugin 插件确保打包之后的 jar 包含了其所依赖的包。

5.add some info to setting.xml of maven

<servers>
    ...
    ...
    <server>
        <id>oss</id>
        <username>your username</username>
        <password>your password</password>
    </server>
</servers>

username和password是 https://issues.sonatype.org/ 中注册的所得。

<profiles>
    <profile>
         <id>oss</id>
         <activation>
             <activeByDefault>true</activeByDefault>
         </activation>
         <properties>
             <gpg.executable>gpg</gpg.executable>
             <gpg.passphrase>your gpg password</gpg.passphrase>
         </properties>
    </profile>
</profiles>

3. 签名

You can sign your project jars using pgp signatures.

4. 发布

mvn clean deploy -Dmaven.test.skip=true -P release

通过这个命令,可以跳过测试,生成 jar,并调用 release profile 中的流程,通过GPG签名,上传到 Nexus Repositories

5. 等待

在一到两个工作日之后,发布的 jar 就会首先同步到 maven central ,然后会同步到 maven repository

发布成功之后就会在 maven centralmaven repository 中搜索到相应的 pom 引用了。

bytom sdk

6. 再发布

再发布的流程会简化很多,只需要通过 maven 命令 deploy 之后,等待两小时,就会同步到maven central

参考:
[1] Uploading Your Jar to Maven Central
[2] 如何发布jar包到maven中央仓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值