[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到他的项目中。另一种更简单的方式就是直接让别人在他的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中。

 

本文转自天天_byconan博客园博客,原文链接:http://www.cnblogs.com/tiantianbyconan/p/4388175.html,如需转载请自行联系原作者


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
2天前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6月前
|
SQL 人工智能 移动开发
Android Studio插件版本与Gradle 版本对应关系
Android Studio插件版本与Gradle 版本对应关系
Android Studio插件版本与Gradle 版本对应关系
|
6月前
|
Java 开发工具 Android开发
Cocos Creator 2.4.6 Android Gradle 版本升级为 6.5.1(插件4.1.0)
Cocos Creator 2.4.6 Android Gradle 版本升级为 6.5.1(插件4.1.0)
185 1
|
7月前
|
存储 Java Android开发
Android 开发 - 充分利用Gradle
Android 开发 - 充分利用Gradle
112 2
|
3月前
|
XML Java 项目管理
java maven 和gradle哪种好
java maven 和gradle哪种好
81 0
|
1月前
|
Java Devops Maven
云效常见问题之maven库代理更换调改如何解决
云效(CloudEfficiency)是阿里云提供的一套软件研发效能平台,旨在通过工程效能、项目管理、质量保障等工具与服务,帮助企业提高软件研发的效率和质量。本合集是云效使用中可能遇到的一些常见问题及其答案的汇总。
20 2
|
8月前
|
IDE Java 开发工具
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8的解决方案
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8的解决方案
|
4月前
|
开发工具 Android开发 开发者
Android 项目编译 Gradle 配置说明
Android 项目编译 Gradle 配置说明
149 0
|
4月前
|
IDE Java Maven
Maven或Gradle:构建工具的使用和配置等知识讲解梳理
Maven或Gradle:构建工具的使用和配置等知识讲解梳理
76 1
|
16天前
|
Java Maven Windows
一个命令解决maven依赖下载失败后无法重新下载依赖的问题-批量删除repository库目录下所有后缀名是.lastUpdated的文件
一个命令解决maven依赖下载失败后无法重新下载依赖的问题-批量删除repository库目录下所有后缀名是.lastUpdated的文件
85 0

推荐镜像

更多