其他笔记-如何向maven中央仓库提交jar

Fork me on Gitee

HDIS-Framework

fork star

HDIS-Framework是一个基于SpringBoot、Kubernetes、阿里云服务,编写的一个用于支撑微服务的极速开发框架。

其文档详尽,Demo全面,设计合理,开箱即用,节省开发时间,提升开发效率。

配套的docker、Kubernetes教程已踩过各种坑,让你的微服务无障碍的顺畅运行起来。

HDIS与Kubernetes或SpringCloud配合使用,能达到最佳效果。

其他笔记-如何向maven中央仓库提交jar

1.0JIRA准备

1.1注册一个JIRA账号

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

1.2创建一个新工程的工单

注意!Project请选择‘Community Support - Open Source Project Repository Hosting (OSSRH)’

https://issues.sonatype.org/secure/CreateIssue!default.jspa

1.3填写工单内容

注意!只需要填写

Group Id:项目Maven的GroupID,注意,GroupID是一个需要你购买了的域名,否则审核员会DISS你。

Project URL:你的git项目主页,如:(https://gitee.com/w6513017/HDIS-Framework)

SCM url:可拉取项目的git地址,如:(https://gitee.com/w6513017/HDIS-Framework.git)

1.4等待审核

进入工单页面查看Activity ===> Comments部分,此处为你和审核员的聊天内容。

1.5审核完毕

当页面上审核状态(Status)为resolved时,才可以向中央仓库提交jar包。

审核通过后会出现以下内容:

Permalink

twatson Thad Watson added a comment - Yesterday

Configuration has been prepared, now you can:

Deploy snapshot artifacts into repository https://oss.sonatype.org/content/repositories/snapshots

Deploy release artifacts into the staging repository https://oss.sonatype.org/service/local/staging/deploy/maven2

Promote staged artifacts into repository ‘Releases’

Download snapshot and release artifacts from group https://oss.sonatype.org/content/groups/public

Download snapshot, release and staged artifacts from staging group https://oss.sonatype.org/content/groups/staging

please comment on this ticket when you promoted your first release, thanks

注意最后一句,当你发布第一个release后,请通知审核员一声。否则他不会为你激活向中央仓库同步。到时候你就玩蛇了!

2.0Maven部署准备

2.1完善POM信息

需要在POM中完善name、description、url、license、scm、developer的信息

<name>HDIS-Framework</name>
<description>支撑Java项目的,基于SpringBoot、阿里云的一系列公共组件,规定的一系列架构约束。</description>
<url>https://gitee.com/w6513017/HDIS-Framework</url>
<licenses>
    <license>
        <name>Apache License Version 2.0</name>
        <url>http://www.apache.org/licenses/LICENSE-2.0</url>
    </license>
</licenses>
<scm>
    <url>https://gitee.com/w6513017/HDIS-Framework.git</url>
    <connection>scm:git:https://gitee.com/w6513017/HDIS-Framework.git</connection>
    <developerConnection>scm:git:https://gitee.com/w6513017/HDIS-Framework.git</developerConnection>
    <tag>master</tag>
</scm>
<developers>
    <developer>
        <name>Nicholas.ZW.H</name>
        <email>[email protected]</email>
    </developer>
</developers>

2.2配置distributionManagement

需要在POM文件中配置distributionManagement

<distributionManagement>
    <!--快照版本地址-->
    <snapshotRepository>
        <id>snapshots</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
    <!--正式版本地址-->
    <repository>
        <id>releases</id>
        <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
    </repository>
</distributionManagement>

2.3配置JIRA的账号和密码

在/home/.m2/settings.xml中设置JIRA的账号和密码

<settings>
  <servers>
    <server>
      <id>snapshots</id>
      <username>你的用户名</username>
      <password>你的密码</password>
    </server>
    <server>
      <id>releases</id>
      <username>你的用户名</username>
      <password>你的密码</password>
    </server>
  </servers>
</settings>

2.4配置上传插件

配置源代码插件、文档插件

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.10.4</version>
            <executions>
                <execution>
                    <id>attach-javadocs</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

2.5gpg相关配置(坑已踩完,放心使用)

2.5.1安装gpg程序

2.5.1.1windows

下载gpg。注意!请选择GnuPG 1.4版本,高版本插件支持有问题!

下载地址:

https://www.gnupg.org/download/index.html

配置环境变量

将gpg的安装目录配置进path

2.5.1.2linux

安装gnupg

yum install -y gnupg

安装rng-tools,补充熵池。否则它在生成密钥的时候会卡住!

yum install -y rng-tools

配置rng-tools

echo 'EXTRAOPTIONS="--rng-device /dev/urandom"' >/etc/sysconfig/rngd
service rngd restart
chkconfig rngd on

2.5.2生成gpg密钥与上传gpg密钥

2.5.2.1生成密钥

按照提示一步步执行即可

gpg --gen-key

2.5.2.2查看密钥

使用命令查看key

gpg --list-keys

2.5.2.3上传公钥

得到密钥以后需要上传至公钥服务器。

maven在发布release版本时需要在公钥服务器上拉取密钥,进行验证。

以下为公钥服务器列表,国内只有它能访问!公钥服务器之间会自动同步。

keyserver.ubuntu.com

上传公钥

gpg --keyserver hkp://keyserver.ubuntu.com --send-keys [公钥ID]

验证公钥

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys [公钥ID]

2.5.3密钥相关操作(可跳过浏览)

2.5.3.1导出密钥

导出公钥

gpg --armor --output public-key --export [用户ID]

导出私钥

gpg --armor --output private-key --export-secret-keys [用户ID]

2.5.3.2导入密钥

导入密钥

gpg --import [密钥文件]

从公钥服务器导入公钥

gpg --keyserver hkp://subkeys.pgp.net --search-keys [用户ID]

2.5.3.3删除密钥

删除私钥

gpg --delete-secret-keys [用户uid]

删除公钥

gpg --delete-keys [用户uid]

2.5.4配置gpg加密插件

由于发布releases环境才会用到gpg,因此可以设置profile进行环境的隔离。

注意!插件版本必须使用1.4版本,1.4以上版本会卡住。

注意!properties需要设置gpg.exe地址。

<properties>
    <gpg.executable>D:\Program Files (x86)\GNU\GnuPG\gpg.exe</gpg.executable>
</properties>
<build>
    <plugins>
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-gpg-plugin</artifactId>
           <version>1.4</version>
           <executions>
             <execution>
               <id>sign-artifacts</id>
               <phase>verify</phase>
               <goals>
                 <goal>sign</goal>
               </goals>
             </execution>
           </executions>
        </plugin>
     </plugins>
</build>

3.0部署

3.1发布snapshot版本

3.1.1Maven设置snapshot版本

修改version,并加上‘-SNAPSHOT’后缀

-SNAPSHOT

3.1.2发布

注意:snapshot版本提交时,并不需要gpg签名,直接提交即可。

执行:

mvn clean deploy

3.1.3验证

在snapshot仓库中可以看到已经发布的snapshot版本

snapshot仓库地址:

https://oss.sonatype.org/content/repositories/snapshots/

3.2提交release版本

3.2.1Maven设置release版本

修改version,并取消‘-SNAPSHOT’后缀

3.2.2发布

注意:release版本提交时,需要gpg签名。

执行:

mvn clean deploy -P release

3.2.3登录sonatype执行发布操作

3.2.3.1登录

https://oss.sonatype.org/#stagingRepositories

3.2.3.2验证

查看你所提交的Repository。

勾选需要sonatype验证的Repository,点击菜单栏的Close。

在下方状态栏中(Activity)可以看见sonatype正在执行验证,并且会实时的显示验证结果

3.2.3.3发布

当验证完成后!

查看你所提交的Repository。

勾选需要sonatype发布的Repository,点击菜单栏的Release。

在下方状态栏中(Activity)可以看见sonatype正在执行发布,并且会实时的显示验证结果

3.2.3.4验证

整个Repository消失后,表示发布成功,可以在仓库中找到了。

sonatype仓库地址:

https://oss.sonatype.org/content/repositories/releases/

过一段时间后,中央仓库会从sonatype仓库同步。中央仓库查看地址:

http://mvnrepository.com/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章