将本地代码提交到Maven中央仓库 repo1.maven.org

avatar 2022年03月06日14:12:39 6 3080 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此

因为博主经常帮大家做程序项目,发现有很多共同的代码,决定新建一个工具项目,类似 HuTool 项目一样,

把这些代码提交到 Maven 中央仓库,供大家下载。

说干就干

准备

1)准备一个域名,如 liuyanzhao.com,当然你也可以直接使用 github.io 作为域名

2)把代码上传到 github,如 github.com/saysky/YzTool

 

一、注册 sonatype 账号

地址:https://issues.sonatype.org/secure/Signup!default.jspa

 

二、创建 issue 工单

登录进入后台,点击右上角的创建

或者访问 https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=17&pid=10302

创建完成是这样的

 

三、DNS解析域名

根据他们自动评论,需要证明 com.liuyanzhao 是我的域名

进入阿里云,域名解析

 

四、修改 Maven 和 pom.xml 配置

上面解析完成后,马上会收到评论,让我们把代码发布到指定的仓库

 

1、修改 maven 安装目录的 setting.xml

<Servers> 里添加你的账号密码

<server>
  <id>sonatype-nexus-snapshots</id>
  <username>账号</username>
  <password>密码</password>
</server>
<server>
  <id>sonatype-nexus-staging</id>
  <username>账号</username>
  <password>密码</password>
</server>

 

2、项目pom.xml里添加配置

直接上完整配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>7</version>
    </parent>

    <groupId>com.liuyanzhao</groupId>
    <artifactId>YzTool</artifactId>
    <version>0.0.2</version>


    <!-- 项目信息 -->
    <name>YzTool</name>
    <description>YzTool 言曌开源项目工具类</description>
    <url>https://github.com/saysky/YzTool</url>

    <!-- 授权协议 -->
    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <!-- SCM -->
    <scm>
        <connection>scm:git:git@github.com:saysky/YzTool.git</connection>
        <developerConnection>scm:git:git@github.com:saysky/YzTool.git</developerConnection>
        <url>git@github.com:saysky/YzTool.git</url>
        <tag>master</tag>
    </scm>

    <!-- 开发者 -->
    <developers>
        <developer>
            <name>言曌(Saysky)</name>
            <email>847064370@qq.com</email>
            <organization>言曌博客咨询部</organization>
        </developer>
    </developers>


    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

        <!--  依赖,省略-->
    </dependencies>


    <profiles>
        <profile>
            <id>release</id>
            <build>
                <resources>
                    <resource>
                        <directory>src/main/java</directory>
                        <includes>
                            <include>**/*.properties</include>
                        </includes>
                    </resource>
                </resources>
                <plugins>
                    <!-- Source -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>2.2.1</version>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <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>
                        <configuration>
                            <show>private</show>
                            <nohelp>true</nohelp>
                            <charset>UTF-8</charset>
                            <encoding>UTF-8</encoding>
                            <docencoding>UTF-8</docencoding>
                            <additionalparam>-Xdoclint:none</additionalparam>
                            <!-- TODO 临时解决不规范的javadoc生成报错,后面要规范化后把这行去掉 -->
                        </configuration>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- GPG -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.5</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <!--Compiler -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.0</version>
                        <configuration>
                            <source>1.8</source>
                            <target>1.8</target>
                            <fork>true</fork>
                            <verbose>true</verbose>
                            <encoding>UTF-8</encoding>
                            <showWarnings>false</showWarnings>
                        </configuration>
                    </plugin>
                    <!--Release -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-release-plugin</artifactId>
                        <version>2.5.3</version>
                        <configuration>
                            <autoVersionSubmodules>true</autoVersionSubmodules>
                            <useReleaseProfile>false</useReleaseProfile>
                            <releaseProfiles>release</releaseProfiles>
                            <goals>deploy</goals>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
            <distributionManagement>
                <snapshotRepository>
                    <id>sonatype-nexus-snapshots</id>
                    <name>Sonatype Nexus Snapshots</name>
                    <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
                </snapshotRepository>
                <repository>
                    <id>sonatype-nexus-staging</id>
                    <name>Nexus Release Repository</name>
                    <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>
            </distributionManagement>
        </profile>
    </profiles>
</project>

 

五、配置GPG公钥

1、mac下载安装 GPG KeyChain

创建

2、把公钥发到邮箱

复制公钥出来

3、打开终端命令行,输入

gpg --keyserver hkp://keyserver.ubuntu.com:11371 --send-keys 刚才复制订单公钥

 

六、执行 Deploy 发布

在项目所在目录的终端输入命令

 mvn deploy -P release

如下图,发布成功了

 

七、登录仓库后台查看

访问 https://s01.oss.sonatype.org/

如下图,输入账号密码,即上面issues注册的账号密码

点击左侧的  Staging Repositories

选中仓库,点击close

然后刷新,等几秒,再点 release发布

 

至此就操作完毕了,等待他们从临时仓库同步到中央仓库了

一般半小时-四小时

半小时内可以在  https://repo1.maven.org/maven2 查询到

四小时内在  https://search.maven.org/ 查询到

 

八、查询验证

1、访问官方仓库地址

访问 https://repo1.maven.org/maven2/com/liuyanzhao/YzTool/

或 https://repo.maven.apache.org/maven2/com/liuyanzhao/YzTool/

可以看到我发布的

2、然后在一个项目里引用我们依赖,试试

<dependency>
    <groupId>com.liuyanzhao</groupId>
    <artifactId>YzTool</artifactId>
    <version>0.0.1</version>
</dependency>

刷新maven,下载成功

在默认的仓库里可以下载到

阿里云仓库需要配置pom.xml里添加

    <repositories>
        <repository>
            <id>aliyun</id>
            <url>https://maven.aliyun.com/repository/central</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>aliyun</id>
            <url>https://maven.aliyun.com/repository/central</url>
        </pluginRepository>
    </pluginRepositories>

 

3. 在搜索 https://search.maven.org/search?q=yztool ,也可以搜到

一般需要4小时候才会搜到

下载的话是立即下载

 

 

 

  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0