[Android]使用Gradle提交自己开源Android库到Maven中心库

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4388175.html    此文针对开源爱好者。 如果你想让别人使用你的Android开源库,第一种方法是,提供你的Github地址,让别人clone一份,然后让别人import到他的项目中。

以下内容为原创,欢迎转载,转载请注明

来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4388175.html 

 

此文针对开源爱好者。

如果你想让别人使用你的Android开源库,第一种方法是,提供你的Github地址,让别人clone一份,然后让别人import到他的项目中。另一种更简单的方式就是直接让别人在他的Gradle中添加你的库依赖,如下:

compile 'com.github.wangjiegulu:AndroidBucket:1.0.1'

如果想使用第二种方式,你需要将你的项目提交到公共的中心库。

这里介绍使用sonatype来把你的开源库(snapshot或release)提交到Maven的中心库。

1. 首先,在https://issues.sonatype.org中注册账号。

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

-Summary:填写项目名称

-Description:填写描述

-Group Id:域名反转,如果没有域名,就直接使用github反转(如github.com/wangjiegulu --> com.github.wangjiegulu),具体看http://central.sonatype.org/pages/choosing-your-coordinates.html

-Project URL:项目的url,可以是项目的github地址。如https://github.com/wangjiegulu/AndroidBucket

-SCM url:版本控制的uri,如https://github.com/wangjiegulu/AndroidBucket.git

3. 创建完毕后就等待状态变为“resolved”,然后你就可以使用Gradle上传项目了。

4. 上传前需要进行GPG签名,所以先去下载GPG(https://www.gnupg.org/download/index.html),然后打开

新建一个Keychain,完成后右键“Send Public Key to Key Server”,这样就能把你的public key发送到服务端。

5. 然后我们再打包项目的aar文件,intellij idea和android studio使用gradle构建后,会在build中自动生成该文件,直接把他拷出来即可。

6. 然后新建build.gradle来进行我们的上传操作,大概内容如下:

// *********************************************************************
apply plugin: 'maven'
apply plugin: 'signing' //使用signing plugin做数字签名

//定义GroupID和Version,ArtefactID会自动使用Project名
group = 'com.github.wangjiegulu'
version = '1.0.1'

repositories {
    mavenCentral();
}

artifacts {
    archives file('AndroidBucket.aar')
}
signing {
    sign configurations.archives
}

uploadArchives {
    repositories {
        mavenDeployer {
            //为Pom文件做数字签名
            beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

            //指定项目部署到的中央库地址,UserName和Password就是Part 1中注册的账号。
            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文件,参见Part 2中Pom文件的规范,不要遗漏必填项
            pom.project {
                name project.name
                packaging 'aar'
                description 'Android开发常用整理'
                url 'https://github.com/wangjiegulu/AndroidBucket'

                scm {
                    url 'scm:git@github.com:wangjiegulu/AndroidBucket.git'
                    connection 'scm:git@github.com:wangjiegulu/AndroidBucket.git'
                    developerConnection 'git@github.com:wangjiegulu/AndroidBucket.git'
                }

                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        distribution 'wangjie'
                    }
                }

                developers {
                    developer {
                        id 'wangjie'
                        name 'Wagn Jie'
                        email 'tiantian.china.2@gmail.com'
                    }
                }
            }
        }
    }
}

archives file('AndroidBucket.aar') 表示指定上传的aar文件。

signing {
    sign configurations.archives
}

表示对内容进行gpg签名,既然需要签名,那需要在gradle.properites中配置key的信息,还有上传的账号密码:

signing.keyId=XXXXXXXXX
signing.password=XXXXXXXXX
signing.secretKeyRingFile=/Users/wangjie/.gnupg/secring.gpg

  ossrhUsername=oss.sonatype.org或者issues.sonatype.org的账号(同一个)
  ossrhPassword=oss.sonatype.org或者issues.sonatype.org的密码(同一个)

所有配置完毕后执行gradle uploadArchives进行上传操作。

7. 登录https://oss.sonatype.org,点击左边的“Staging Repositories”,然后刚刚上传的项目名称为com.github.wangjiegulu去掉点-数字

选中后点击“Close”,如果成功,则再点击“Release”按钮发布。

然后再等待2小时,就可以在Maven中心库中搜索到了。

 

注意:以后如果需要再上传其它项目的时候,直接从第4步开始即可,因为你的groupId已经申请过了,以后新的artifacts可以直接部署到这个groupId中。

 

参考:http://central.sonatype.org/pages/ossrh-guide.html

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
域名解析 Java Maven
Maven 公共代理库
Maven 公共仓库提供了对 maven central、jcenter、google、spring 等常用的 Maven 仓库的镜像功能。用户可以通过页面浏览仓库内容、检索和下载制品。在构建时使用 Maven 个公共仓库地址下载制品速度更快,更稳定。
55830 1
Maven 公共代理库
|
存储 Java Maven
maven在尝试访问nexus存储库时得到“未授权” Not authorized , ReasonPhrase:Unauthorized
maven在尝试访问nexus存储库时得到“未授权” Not authorized , ReasonPhrase:Unauthorized
976 0
|
XML Java Maven
jar包导入到项目中、本地maven仓库、私库
jar包导入到项目中、本地maven仓库、私库
2960 0
jar包导入到项目中、本地maven仓库、私库
|
缓存 运维 负载均衡
阿里云云效操作报错合集之在获取Maven私有库配置出错,该如何操作
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
Java Devops Maven
云效常见问题之maven库代理更换调改如何解决
云效(CloudEfficiency)是阿里云提供的一套软件研发效能平台,旨在通过工程效能、项目管理、质量保障等工具与服务,帮助企业提高软件研发的效率和质量。本合集是云效使用中可能遇到的一些常见问题及其答案的汇总。
180 2
|
Java Maven Windows
一个命令解决maven依赖下载失败后无法重新下载依赖的问题-批量删除repository库目录下所有后缀名是.lastUpdated的文件
一个命令解决maven依赖下载失败后无法重新下载依赖的问题-批量删除repository库目录下所有后缀名是.lastUpdated的文件
1077 0
|
存储 Java 测试技术
发布jar到maven中央仓库idea+nexus存储库管理操作流程
发布jar到maven中央仓库idea+nexus存储库管理操作流程
182 0
|
Java Maven
使用maven仓库?每次都是自定义,设置稳定maven本地库地址
使用maven仓库?每次都是自定义,设置稳定maven本地库地址
523 0
使用maven仓库?每次都是自定义,设置稳定maven本地库地址
|
Java Maven
batik库在Maven中版本
batik库在Maven中版本
629 0
batik库在Maven中版本
|
Java 网络安全 Maven
发布jar包到公有maven库详解
Step 1: 安装 JDK, Maven, 建 Github 账号等等. Step 2: 如果还没有,先建 GitHub 账号. Step 3: 建立新的 Github 库. Step 4: 为你的GitHub账号 新增 SSH 密钥 Step 5: 向GitHub推送代码. Step 6: 注册 Sonatype Jira 账号 Step 7: 为新托管项目建一个 Jira issue.搞个简单请求点这里.
365 0
发布jar包到公有maven库详解

热门文章

最新文章

推荐镜像

更多