Android Studio 发布 Library 到 JCenter

Android Studio 发布 Library 到 JCenter

JCenter 是管理包的地方,可以很方便的使用 Gradle 引用到 JCenter 里面的包,极大的方便了 Android 开发。

想引用 EventBus,一句话搞定:

compile 'org.greenrobot:eventbus:3.0.0'

现在来介绍下怎么把你的 Library 上传到 JCenter,大致的步骤是:

  1. 科学上网
  2. 注册 Bintray 账号
  3. 添加仓库
  4. 添加包
  5. 获取 API KEY
  6. 使用 Gradle 上传 Library 到 仓库
  7. 提交到 JCenter 等待审核
  8. 使用你的 Library

  • Android Studio 发布 Library 到 JCenter
    • 科学上网
    • 注册 Bintray 账号
    • 添加仓库
    • 添加包
    • 获取 API KEY
    • 使用 Gradle 上传 Library 到 仓库
    • 提交到 JCenter 等待审核
    • 使用你的 Library
    • 可能会遇到的问题
      • Q:怎么科学上网?
      • Q:Gradle 脚本执行 bintrayUpload 命令 FAILURE?
      • Q:代码混淆
      • Q:技术支持

科学上网

最近管得严,科学上网也不容易,文章末尾提供了博主科学上网方式。

注册 Bintray 账号

进入bintray 官网,点击 Sign Up Here 进入注册页面。
Android Studio 发布 Library 到 JCenter_第1张图片
注册页面填写的邮箱一定要用 GMAIL
Android Studio 发布 Library 到 JCenter_第2张图片
注册成功后,登录到主页面。

添加仓库

在主页面点击 Add New Repository 添加一个 maven 仓库
Android Studio 发布 Library 到 JCenter_第3张图片
填写仓库信息
Android Studio 发布 Library 到 JCenter_第4张图片
填写完信息以后点 Create 按钮,仓库创建完成。

添加包

点击刚添加的仓库进入仓库详情页面,点击 Add New Package 添加包
Android Studio 发布 Library 到 JCenter_第5张图片
填写包信息
Android Studio 发布 Library 到 JCenter_第6张图片
Create Package 创建完成。

获取 API KEY

Android Studio 发布 Library 到 JCenter_第7张图片
上图标识获取你的 API KEY,这个在配置 Gradle 的时候用得着。

使用 Gradle 上传 Library 到 仓库

使用人家写好的 Gradle 脚本,只需要添加一点配置就可以了。Github 项目地址 点这里

打开 Android 工程,找到 Project 的 build.gradle 文件:
Android Studio 发布 Library 到 JCenter_第8张图片
加上两段代码

classpath 'com.novoda:bintray-release:0.8.0'
tasks.withType(Javadoc) {
    options{
        encoding "UTF-8"
        charSet 'UTF-8'
        links "http://docs.oracle.com/javase/7/docs/api"
    }
    options.addStringOption('Xdoclint:none', '-quiet')
}

第二段代码可以避免 Javadoc 失败。

在 Library 的 build.gradle 文件中添加如下代码,可以防止代码检查出异常。

android {
    lintOptions {
        abortOnError false
    }
}

接下来配置上传 Library 信息:

publish {
    userOrg = "niulinguo"
    repoName = "maven"
    groupId = 'com.niles.test'
    artifactId = 'ttsdk'
    publishVersion = '1.0.2'
    desc = 'this is a desc'
    website = 'https://github.com/linglongxin24/SQLite.git'
}

注意配置的信息要和刚刚在官网上填写的信息一致。
Android Studio 发布 Library 到 JCenter_第9张图片
按照上面的去配置,最后使用 Gradle 引用为:

compile 'com.niles.test:ttsdk:1.0.2'

配置完成后,最后只需要执行一段 Gradle 命令

$ ./gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false

其中 BINTRAY_USERNAME 就是用户名,BINTRAY_KEY 就是 API KEY。

等待2分钟左右就可以上传成功,中间可能有很多坑,我会在文章最后总结。

提交到 JCenter 等待审核

回到网页,打开刚刚创建的项目,这时会发现刚上传的 Library 已经在里面了。
Android Studio 发布 Library 到 JCenter_第10张图片
提交审核页面如下图
Android Studio 发布 Library 到 JCenter_第11张图片
填写 Comments 信息,点击 Send 提交审核。大概一天以后可以收到审核结果信息。


第二天:

进入官网 ,你将收到一条信息:
Android Studio 发布 Library 到 JCenter_第12张图片
通过审核了有木有,比上架 iOS 容易一百倍有木有~

使用你的 Library

审核成功之后,想引用你的 Library,只需要一句话

compile 'com.niles.test:ttsdk:1.0.2'

非常炫酷!!!


可能会遇到的问题

Q:怎么科学上网?

A:
不会科学上网的 Android 开发只能是个好码农。不会科学上网,你就不能获取一手的学习资料,不能解决冷门的 BUG,不能升职加薪,不能赢取白富美,只能当个好码农。想要科学上网,加他微信 hemage99 咨询,299一年,好贵的说。

Q:Gradle 脚本执行 bintrayUpload 命令 FAILURE?

A:
1. 检查你的 userOrgrepoNamegroupIdartifactId 配置是否正确。
2. 检查 gradle.properties 是否配置了代理服务器信息,注释掉。
3. 重启电脑。

Q:代码混淆

A:
需要将 Library 的 build.gradle 中修改 minifyEnabled 属性:

release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

不想混淆的代码可以使用 Android 注解 android.support.annotation.Keep

@Keep
public static boolean isServiceBond() {
    return sTicService != null;
}

Q:技术支持

A:
需要技术支持的朋友可以加我微信哦 niulinguo12138

注:我使用的环境是 MacOS,对 Windows 系统不熟哦。

Android Studio 发布 Library 到 JCenter_第13张图片

你可能感兴趣的:(Android)