zoukankan      html  css  js  c++  java
  • [Android]使用Gradle提交自己开源Android库到Maven中心库

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

    来自天天博客: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

  • 相关阅读:
    hdu 1251 字典树模板题 ---多串 查找单词出现次数
    一个极其简洁的Python网页抓取程序,自己主动从雅虎財经抓取股票数据
    JSONObject与JSONArray的使用
    关于DPM(Deformable Part Model)算法中模型结构的解释
    fullcalendar日历控件知识点集合
    android--自己定义ProgressDialog显示位置(其他Dialog子类都能够设置)
    最简单的Java框架
    java final keyword
    IBinder对象在进程间传递的形式(一)
    windows的定时任务设置
  • 原文地址:https://www.cnblogs.com/tiantianbyconan/p/4388175.html
Copyright © 2011-2022 走看看