Android 发布自己的sdk

news2025/1/18 14:50:08

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

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文件的

<intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>


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

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  可以查看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/23661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

艾美捷Immunochemistry FAM-FLICA Caspase-1检测方案

Caspases在细胞凋亡和炎症中发挥重要作用。ICT的FLICA检测试剂盒被研究人员用于通过培养的细胞和组织中的胱天蛋白酶活性来定量凋亡。 艾美捷Immunochemistry FAM FLICA Caspase-1探针允许研究人员评估Caspase-1的激活。FLICA试剂FAM-YVAD-FMK进入每个细胞&#xff0c;并不可逆…

【第十二篇】Camunda系列-事件篇-信号事件

信号事件 1. 开始事件 通过信号来启动流程实例 部署流程和发送信号来启动流程 /*** 部署流程*/@Testpublic void deployFlow(){Deployment deploy = repositoryService.createDeployment(<

2022卡塔尔世界杯:TikTok卖家如何把握这四年一度的营销机遇?

2022卡塔尔世界杯已正式开幕&#xff0c;这四年一度规模最大的足球赛事&#xff0c;也是全民体育狂欢节。这样的高关注度&#xff0c;必然会带来高流量&#xff0c;而流量就是金钱。没有卖家能在如此巨大的流量面前无动于衷&#xff0c;尤其是运动类品牌。TikTok作为世界杯流量…

海绵城市解决方案-最新全套文件

海绵城市解决方案-最新全套文件一、建设背景1、建设海绵城市主要有三个意义&#xff1a;2、当前我国海绵城市建设面临的困境二、建设架构三、建设方案1、“渗”&#xff1a;能把更多的雨水渗透到城市的地下储存起来2、“滞”&#xff1a;不能让雨水很快流走&#xff0c;也是要把…

不懂23种设计模式?别灰心,这份核心笔记来帮你,你想知道的都在这里!

设计模式是软件工程中各种常见问题的经典解决方案&#xff0c;设计模式不只是代码&#xff0c;而是组织代码的方式。假设一行行的代码是砖&#xff0c;设计模式就是蓝图。 什么是设计模式 设计模式是解决问题的一种思想&#xff0c;和语言无关。在面向对象软件设计的工程中&am…

Elasticsearch(macbook搭建,Elasticsearch+kibana)一步到位

Elasticsearch安装 首先在官网下载一下ES的压缩包&#xff1a;&#xff08;我是m1的各位自己看着下&#xff09;Download Elasticsearch | Elastic jdk&#xff0c;要有的&#xff01;不会自自己百度一下最好1.8的 &#xff08;你环境变设成全局的&#xff09;放在哪里不重要…

SPARKSQL3.0-Analyzer阶段源码剖析

一、前言 在上一节【SPARKSQL3.0-Unresolved[Parsed]阶段源码剖析】中已经介绍了Unresolved Logical Plan未解析阶段&#xff0c;建议先看完上一篇文章后再来看本文 由于Unresolved LogicalPlan阶段生成的logicalPlan仅仅是一种数据结构&#xff0c;不包含任何数据信息。故在…

ggplot2 | 世界杯赛程的可视化就交给我吧!~

11. 写在前面 昨天卡塔尔&#x1f1f6;&#x1f1e6;输了比赛真是让人大跌眼镜啊&#x1f631;&#xff0c;打破了世界杯东道主必胜的神律&#xff0c;也不知道王子们是怎么想的。&#x1f923; 今天是英格兰&#x1f3f4;&#xe0067;&#xe0062;&#xe0065;&#xe006e…

Linux 调试之strace

文章目录前言一、strace 例子1.1 strace 跟踪 free1.2 strace 跟踪 dd1.3 strace 其他一些使用选项二、strace 原理2.1 ptrace简介2.2 strace 原理总结参考资料前言 strace命令是Linux系统调用跟踪器&#xff0c;可以跟踪系统调用&#xff0c;为每个系统调用打印一行信息&…

浅谈SQL Server索引视图(物化视图)以及索引视图与查询重写

目录 &#xff08;一&#xff09;前言 &#xff08;二&#xff09;正文 1. 物化视图&#xff08;索引视图&#xff09;与查询重写的基本概念 2. 创建测试环境 &#xff08;1&#xff09;建表 &#xff08;2&#xff09;写数据 3. 索引视图创建 &#xff08;1&#xff0…

一篇文章详解Linux的用户和权限

教程推荐&#xff1a;Linux零基础快速入门到精通 认知root用户 root用户&#xff08;超级管理员&#xff09; 无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。 •在Linux系统中&#xff0c;拥有最大权限的账户名为&#xff1a;root&#xff08;超级管理员&a…

第十七届全国人机语音通讯学术会议(NCMMSC 2022) | 早鸟票开放注册了

全国人机语音通讯学术会议是国内语音领域广大专家、学者和科研工作者交流最新研究成果&#xff0c;促进该领域研究和开发工作不断进步的重要舞台。该系列会议自1990年开创以来已成功召开了十六届。2022年第十七届全国人机语音通讯学术会议&#xff08;National Conference on M…

移动WEB开发之流式布局--移动端常见布局--流式布局

移动端技术选型 移动端布局和以前我们学习的PC端有所区别&#xff1a; 1. 单独制作移动端页面&#xff08;主流&#xff09; 流式布局&#xff08;百分比布局&#xff09; flex 弹性布局&#xff08;强烈推荐&#xff09; lessrem媒体查询布局 混合布局 2. 响应式页面兼…

ConcurrentHashMap的实现原理是分段锁?你Out了

前言 Java后端开发面试的时候&#xff0c;一场好的面试&#xff0c;是无论如何也绕不开并发编程的。并发编程里面往往有个很重要的类可能会被拿出来探讨&#xff1a;ConcurrentHashMap。 ConcurrentHashMap是HashMap的线程安全版。大家都知道HashMap的高性能&#xff0c;但是H…

动静态库的制作

目录 一.动静态库的原理 二.静态库 2.1制作静态库 2.2使用静态库 三.动态库 3.1制作动态库 3.2动态库的使用 一.动静态库的原理 首先要知道可执行程序的生成过程&#xff1a;1&#xff0c;预处理 2&#xff0c;编译 3&#xff0c;汇编 4 &#xff0c;链接 1.预处理 头…

03 LaTex之标题页摘要

1.标题页 \title{{ABC}\footnote{explain}}%生成标题和标题的脚注\author{\small $^a$lay \qquad $^b$winter \footnote{super star}\\%换行符 %作者信息 \small $^a$ lays brief\\ \small lays address, 710021\\%换行 \small $^b$ winters introduction \\ \small winters …

0101 蓝桥杯真题04

/* * 马虎的算式 * 小明是个急性子&#xff0c;上小学的时候经常把老师写在黑板上的题目抄错了。 * 有一次&#xff0c;老师出的题目是&#xff1a;36 x 495 ? * 他却给抄成了&#xff1a;396 x 45 ? * 但结果却很戏剧性&#xff0c;他的答案竟然是对的&#xff01;&a…

同花顺_代码解析_技术指标_Z_3

本文通过对同花顺中现成代码进行解析&#xff0c;用以了解同花顺相关策略设计的思想 目录 ZNZ_DPCYC1 ZNZ_DPCYR ZNZ_HLD ZNZ_HUO ZNZ_MYL1 ZNZ_MYP1 ZNZ_PAS ZNZ_PAS1 ZNZ_RPY1 ZNZ_RPY2 ZNZ_SDR ZNZ_TAO ZNZ_YHBOL1 ZNZ_YHCBB ZX ZNZ_DPCYC1 大盘成本均线 行…

python 给图片添加噪声

import numpy as np import cv2 import matplotlib.pyplot as plt import skimage from skimage import io import randomdef addGaussNoise(origin,var0.0005):#添加高斯噪声函数var random.uniform(0.0001, 0.04)noisy skimage.util.random_noise(origin, modegaussian, va…

idea iu 2021 Mac版本的使用,如何创建java web项目,包括tomcat和web包

Java web系列文章目录 第一章 前端学习入门之idea iu 2021版本的使用 目录Java web系列文章目录前言一、Java web是什么&#xff1f;二、配置步骤1.下载Tomcat服务器2.idea iu 2021版本界面总结前言 随着前端的学习路径&#xff0c;java web项目不可避免要学习使用&#xff0…