• Android 发布自己的sdk


    作为一个开发,总是会跟开源组件打交道,现在记下我自己写的开源组件遇到的问题

    1.创建一个Android Library

    2.修改build.gradle

    plugins {
        id 'com.android.application'
    }

    里面的id 'com.android.application' 改为  id 'com.android.library'

    android {
        compileSdk 32
    
        defaultConfig {
            // applicationId "com.xjcmpt.fightstreet"
        }
    }

    把Library下的build.gradle里面的applicationId注释,还有Androidmanifest文件的


                   
     
                   


    这个要注释掉,不然会有两个启动图标

    3.生成aar文件

    outputs\aar下面有生成的aar文件

    4.注册一个Sonatype JIRA 账号

    这里给个链接System Dashboard - Sonatype JIRA

    或者看一看其他人的

    Android Gradle7.0上传Library到maven仓库_光临天下的博客-CSDN博客_gradle 上传文件




    Android手把手,发布开源组件至 MavenCentral仓库_许进进的博客-CSDN博客

    这两篇文章帮了我很多,感谢大佬

    5.准备gpg签名,链接同上,都能找到

    Gpg4win - Get Gpg4win 去下载Gpg4win

    我的是这样的

    要勾选使用密码句才会生成我们需要的密钥

    生成后记得保留后八位数字,后面要用

    选择在服务器上发布

    不放心的朋友可以去 keys.openpgp.org 查一查,前面转的链接也有图,我就不详细说了

    上传成功后选择备份私钥,导出...选项导的是公钥

    导出的时候记得看后缀,我们要的是gpg,其他格式不要

    6.准备本地的gradle.properties

    这里要注意,不是我们项目里面的gradle.properties,是在C:\Users\用户\.gradle文件夹下的gradle.properties,如果没找到可以自己新建一个,在这个gradle.properties里面我们需要填一些资料

    # MavenCentral
    signing.keyId=私钥后9位
    signing.password=创建私钥时填写的密码
    signing.secretKeyRingFile=私钥的绝对路劲,记得把\改成\\,不然studio提示你\uxxxx
    mavenCentralUsername=Sonatype账号名
    mavenCentralPassword=Sonatype账号密码

    7.准备maven publish插件

    我前面发的两个大佬的链接,到我搞这一步的时候总是失败(要自己写gradle文件,有兴趣的朋友可以试试),那没辙了,换吧

    找了一下,有个大佬写了插件,不用我们自己去写gradle文件,照着大佬的教程走就好了,这里我给大家精简一下,直接上图

    这个是项目的build.gradle配置

    这个是我们要抽取aar的library的 

    这个是我直接照搬的settings.gradle里面的内容,就那三个仓库,全部都是https://s01.oss.sonatype.org开头的,我也不知道具体需要哪个还是三个都要,大家看着来吧 

    8.准备项目的gradle.properties

    除了我们电脑里面的gradle.properties,项目里面的gradle.properties也有东西要配置,这个就是我的配置,大家看着填吧

    # 服务器地址  maven center
    SONATYPE_HOST=S01
    
    # 发布 release 组件时是否签名
    RELEASE_SIGNING_ENABLED=true
    
    VERSION_NAME = 0.0.5
    POM_ARTIFACT_ID = FactorsSDK
    POM_NAME = TestModSDK
    POM_DESCRIPTION = 描述
    POM_PACKAGING = aar
    GROUP=创建账号时的groupid
    POM_INCEPTION_YEAR=2022
    # 主页
    POM_URL=https://github.com
    # Licenses 信息
    POM_LICENSE_NAME=The Apache Software License, Version 2.0
    POM_LICENSE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt
    POM_LICENSE_DIST=repo
    # 版本控制信息
    POM_SCM_URL=https://github.com/
    POM_SCM_CONNECTION=scm:git:git://github.com/.git
    POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/.git
    # 开发者信息
    POM_DEVELOPER_ID=nameid
    POM_DEVELOPER_NAME=name
    POM_DEVELOPER_URL=https://github.com/

    9.准备上传到仓库

    准备工作做好以后我们就该上传代码了,这边建议大家先在本地上查看一下pom文件

    这个生成一个pom文件 

    这个文件可以查看我们自己的配置全不全,不过有填漏的记得补上,不然等你提交的时候各种报漏不给过,浪费你时间,附带一提,如果pom文件里面没有你在项目的gradle.properties填的信息,可以在本地的gradle.properties里面填,格式是一样的,我搞这个的时候我的描述就是非要卸载本地的gradle.properties才能写进pom文件

    10.上传

    还是这里上传 ,对照下面来决定你要用哪个吧

    generateMetadataFileFoxxxPublication:生成组件配置数据,会在 build/publications/$xxx/里面,一般比较少用。
    generatePomFileForxxxPublication:生成pom文件,在build/publications/$xxx/里面,一般比较少用。
    publish:遍历所有发布器,发布到所有的仓库,不包括本地仓库。
    publishAllPublicationsToxxxRepository:遍历所有发布器,发布到对应的仓库,这里是发布到release仓库里面。
    publishxxxPublicationToMavenLocal:将xxx发布器,发布到本地仓库,这里的发布器的mavenJava/release
    publishxxxPublicationToxxxRepository:将xxx发布器,发布到xxx仓库,这里的发布器的mavenJava/release,仓库是relase仓库
    publishToMavenLocal:遍历所有发布器,发布到本地仓库。

    11.检查上传效果

    跳转链接Nexus Repository Manager,点击右上角的log in,填上之前申请的 Sonatype账号和密码

    然后选择

    后面因为我项目上传成功了,刷新后就没内容,没法截图了

    在现在empty selection的地方会出现三个选项卡

    summary,activity和content,其他先不谈,content就是你上传的东西,确认没有问题后就可以点击close后写描述,接着上传

    等待几分钟后在activity选项卡那里你可以看到结果,如果前面的准备没有缺漏,那么你就可以直接点上面的release,把内容传到Maven Central 仓库了

    当上传成功的时候,Sonatype会发一条信息给你,注意看你申请Sonatype账号时填的邮箱,但更新到https://search.maven.org可能需要长达几个小时。

    跳转链接 Maven Central Repository Search  可以查看

  • 相关阅读:
    小知识·认识CMake
    vue2+elementUI 仿照SPC开发CPK分析工具
    路由协议的优先级,以及管理距离 AD 和 metric 的区别
    多假设跟踪算法
    碰瓷“一带一路”
    骨传导运动耳机哪个牌子好?值得买的骨传导运动耳机
    Java之Spring面试总结
    Angular-03:组件模板
    小白必看,手把手教你重装系统
    C# Linq增强扩展MoreLinq之Aggregate(对序列应用累加器)
  • 原文地址:https://blog.csdn.net/qq_37324563/article/details/127968618