zoukankan      html  css  js  c++  java
  • 清晰的教你如何将 Maven 项目上传至 中央仓库以及版本更新

      项目中总会依赖一些大牛的开源库,例如 Android 开发 通过以下方式就可以方便的引入库。那么如何将我们自己的库也能这样来使用呢?下面我们将详细的讲解每一步的过程:

     implementation 'io.github.meetsl:SCardView:1.0' 

    一、通过 sonatype 把你的开源库提交到Maven的中心库

      1.首先,在 sonatype 官网中注册账号。

      2. 然后在 https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134 中新建一个“Project ticket”。

       

      点击 Create 之后,你就会进入一个 jira 页面(sonatype 使用jira 来追踪每一个项目进度),与此同时你注册时使用的邮箱中也会收到一封邮件提示你,任务创建成功,正在等待处理。

      3. 创建完毕后就等待一段时间,刷新页面。当状态变为“resolved”,然后你就可以使用Gradle上传项目了。或者就等着接收 sonatype 的反馈邮件,确认已经为你创建好了新项目

         

      4. 上传项目到 Maven 中心仓库

      示例项目是一个 Android 项目,所以通过在开源库的 Libray Module 下的 build.gradle 末尾添加如下配置:

    apply plugin: 'maven'
    apply plugin: 'signing'
    
    signing {
        sign configurations.archives
    }
    
    group = "io.github.meetsl"
    archivesBaseName = "SCardView"
    version = "1.0"
    
    uploadArchives {
        repositories {
            mavenDeployer {
                beforeDeployment {
                    MavenDeployment deployment -> signing.signPom(deployment)
                }
    
                repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
                    authentication(userName: ossrhUsername, password: ossrhPassword)
                }
    
                snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
                    authentication(userName: ossrhUsername, password: ossrhPassword)
                }
    
                pom.project {
                    name 'SCardView'
                    packaging 'aar'
                    description 'This is a view that is similar to the CardView of google ,but it can change the position of shadow and the shadow color of it . '
                    url 'https://github.com/meetsl/SCardView-master'
    
                    scm {
                        connection 'scm:git:https://github.com/meetsl/SCardView-master.git'
                        developerConnection 'scm:git:https://github.com/meetsl/SCardView-master.git'
                        url 'https://github.com/meetsl/SCardView-master.git'
                    }
    
                    licenses {
                        license {
                            name 'The Apache License, Version 2.0'
                            url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        }
                    }
    
                    developers {
                        developer {
                            id 'xxxxxx'
                            name 'xxxxxx'
                            email 'xxxxxxxx.com'
                        }
                    }
                }
            }
        }
    }

       在上面的代码中,大家请将根域中的 group , archiveBaseName , version 以及 uploadArchives#pom.project 中的相关描述信息替换成自己的就好了。这些信息将会在接下来上传的时候,自动打包成 Maven 项目,并封装相应信息。

      5. 上面配置好了相应的版本信息,接下来我们需要配置上传时需要的签名以及密码等相关信息

      首先我们需要创建一个 gpg 签名秘钥,并将公钥上传到指定服务器。对于在 MacOS 下,我们可以下载一个叫做GPGTools (http://www.gpgtools.org)的工具生成我们的签名文件。在 Windows 下,我们下载安装一个 Kleopatra(https://www.gpg4win.org/thanks-for-download.html)工具生成我们的签名文件。这两个工具使用基本一致,在安装完成之后,新建一个密钥对,并将本地公钥上传到指定服务器。

      ② 上传完成之后,就可以正式配置签名信息以及你的 Maven 账户信息了,我们在 Library Module 的根目录下新建一个 gradle.properties 文件,内容如下:

    signing.keyId= 密钥的ID  (注意一下,密钥ID 是一个八个字节的字符串 Kleopatra工具需要悬浮在 密钥ID 一栏查看 )
    signing.password= 密钥的密码 (生成证书时填写的密码)
    signing.secretKeyRingFile=..\secret.gpg(secret.gpg为私密证书。将导出的私密证书,放置在工程目录下)
    ossrhUsername= sonatype 账号
    ossrhPassword= sonatype 密码

      配置成功之后,按照下图运行 uploadArchives 就可以开始上传了,这样就可以将你的文件上传到 Maven 中央库了

          

      6. 将上传的开源库发布出去

      通过上面的步骤,我们只是把开源库放置在了一个私有的 Maven 仓库中,是不能被其他人所访问的。所以还需要我们自己将它发布出去。那么如何发布:

      进入 Maven 项目控制台

                      进入以下地址:https://oss.sonatype.org/,并使用 sonatype 的账号密码在右上角进行登录。

            ② 查找你上传的项目

           如果你登录成功,在左侧的导航栏,你会看到一个叫做 Staging Repositories 的选项,点击它,你会发现出现了很多列表选项,如下图4。

      

      根据列表名称,你会发现一个以你的 groud id 去掉点号后加上一个四位数字命名的Repository,选中它,你会发现上方的 Close 按钮亮起,当你确认上传无误之后,你可以点击 Close 按钮,关闭掉这个仓库,不允许再次上传。如果关闭成功,你点击刷新以后会发现,Release 按钮亮起,点击它即可发布。如果关闭失败,你可以看看下方的界面,查找一下失败原因,再次上传代码,关闭后发布。

      当然我在 close 的时候遇到一个问题: No public key: Key with id: (XXXXX) was not able to be located (oss.sonatype.org)  出现这个问题的原因是 openGPG 的各种 key 服务同步需要花费时间,你在close 的时候还没有同步过去。就会出现这个问题。那么如何解决:stackoverflow https://stackoverflow.com/questions/19462617/no-public-key-key-with-id-xxxxx-was-not-able-to-be-located-oss-sonatype-org

       

      上图就是我的解决过程,然后再 close ,再 release  ,OK 这就将开源库发布出去了。

      7. 查找开源库

      注意开源库发布出去之后,还是需要等待一段时间,才能在这里 https://search.maven.org/   查找我们的开源库,以及查看如何依赖自己的开源库。我是下班第二天来看的,查收 email 也是有通知的

      

      OpenGPG 这块或者其他地方有问题的,欢迎来问。

     ----------------  更新:2018/10/9

    二、中央仓库中库版本升级

      我们上传的库添加新功能或者修复了一些 bug 之后,需要更新时,我们要做的操作很简单:

      1. 更改版本号:eg. 1.0  to 1.1 更改完成之后,运行 uploadArchives 开始上传新版本

      

      2. 上传完成之后,然后执行上述 原操作中的 6 操作,将新版本发布出去

      3. release 之后,还是需要等待一段时间,然后查看我们的新版本:

      

      新版本上传成功,就可以使用了:

    implementation 'io.github.meetsl:SCardView:1.1'

      参考:

      https://blog.csdn.net/c794904140/article/details/50159509

      https://blog.csdn.net/kifile/article/details/42463489

  • 相关阅读:
    [国嵌笔记][001-003][嵌入式系统概述]
    世界第一魔法师
    详解CSS display:inline-block的应用(转)
    详解CSS float属性(转)
    CSS代码重构与优化之路(转)
    未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。(转)
    【总结整理】display与position之间的关系【较完整】(转)
    css知多少(11)——position(转)
    【总结整理】行内标签span设置position:absolute/float属性可以设置宽度与高度
    【总结整理】display、visibility、overflow的隐藏问题
  • 原文地址:https://www.cnblogs.com/aimqqroad-13/p/9645776.html
Copyright © 2011-2022 走看看