前言

为了将阿里云短信开箱即用发布到Jcenter仓库,前前后后花费了1天半的时间,把端午节都搭进去了。终于今天收到了Jcenter的消息,自己发布的包被添加到了Jcenter仓库,也算给开源社区做了次小贡献。

现在记录下踩过的坑。

注册Jcenter账号

要注意的地方,Jcenter账号跟国内一样分为社区版和企业版,企业版当然是要付费的,而且很坑的是点进Bintray官网,首先映入眼帘的就是大大的Start Your Free Trial(开始免费试用),一开始我就注册了企业版账号,后来删号重建了。我们应该点这里:

填写信息后注册,我是直接使用的Github账号注册。

创建Repository

点击右上角View Profile

在账号信息下方,我们点击Add New Repository,创建新的仓库。

在填写信息的时候,选择Public(Private是需要付钱的,大家都懂),如果你是maven项目,仓库名最好填写maven,因为我在申请Add To Jcenter时,第一次失败了,要求我把项目放在maven路径下。

创建Package

创建完仓库,就是创建包了,没什么好说的,你的应用叫啥名,包就叫啥名就行。

创建完可以看到包的基本信息:

打包上传

这里使用的是开源项目bintray-release,官方文档bintray-release/wiki

主要在build.gradle里添加如下信息

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.novoda:bintray-release:0.9.1'
}
} apply plugin: 'com.novoda.bintray-release' publish {
userOrg = '你的Bintray用户名'
groupId = '应用的groupId,例如:io.github.gcdd1993'
artifactId = '应用的名称,例如:ali-sms-spring-boot-starter'
publishVersion = '应用的版本号,例如:1.0.0.RELEASE'
desc = '一句话概述你的应用干啥的'
website = '应用链接,一般写github地址就行,例如:https://github.com/gcdd1993/ali-sms-spring-boot-starter'
} /**
* 以下是我自己加的
* 第一个解决Gradle Task:jar skipped的问题
* 第二个解决javaDoc 'UTF-8'乱码问题
*/
jar {
enabled = true
} tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}

接下来执行gradle命令:

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

本地测试可以把-PdryRun=false改为-PdryRun=true,这样就不会帮你上传到Bintray,其他的都执行。

看到以上信息,证明发布成功了。

Add To Jcenter

发布成功后,你应该会在Package的Files标签下看到你上传的文件

我们点击右上角Actions下的Add To Jcenter

填写信息,两个复选框我都勾选了,然后填写Group Id,填上应用说明(最好用英文),然后等着就行了。

一般来说1~3天你将会收到一封邮件,通知你的申请通过没有,如下

如果没有通过,也会告诉你怎么改,所以不用担心。

这时候再打开Bintray的Package页面,会发现Included In Jcenter,证明已经被Jcenter收录了,其他人就可以正常使用啦。

Travis CI持续集成

Travis CI是什么就不介绍了,不明白的可以看下阮一峰的网络日志-持续集成服务 Travis CI 教程,Github公开仓库免费的持续集成工具。

项目根目录添加.travis.yml,填入以下信息(针对Gradle搭建的Java项目适用)

language: java
sudo: required
dist: xenial
jdk:
- openjdk8
branches:
only:
- master
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
before_install:
- chmod +x gradlew
install:
- ./gradlew jar
script:
- ./gradlew bintrayUpload -PbintrayUser=${bintray_user} -PbintrayKey=${bintray_key} -PdryRun=false

其中变量${bintray_user}${bintray_key}是Travis CI运行时环境变量,请到Travis CI Settings填写。

参考文档

发布开源项目到Jcenter的更多相关文章

  1. [转]使用Gradle发布Android开源项目到JCenter

      转自:http://blog.csdn.net/maosidiaoxian/article/details/43148643 使用Gradle发布Android开源项目到JCenter 分类: G ...

  2. Android拓展系列(12)--使用Gradle发布aar项目到JCenter仓库

    目的 发布自己的android library(也就是aar)到公共的jcenter仓库,所有的人都能用gradle最简单的方式引用. 为什么选择jcenter,它兼容maven,而且支持更多形式仓库 ...

  3. 发布开源库到JCenter所遇到的一些问题记录

    这周末自己瞎折磨了下,如何发布开源库到 JCenter,然后这过程中碰到了一些问题,在此记录分享一下 本篇是基于上一篇:教你一步步发布一个开源库到 JCenter 介绍的流程.步骤中所遇到的问题,所以 ...

  4. Android 上传开源项目到 jcenter 实战踩坑之路

    本文微信公众号「AndroidTraveler」首发. 背景 其实 Android 上传开源项目到 jcenter 并不是一件新鲜事,网上也有很多文章. 包括我本人在将开源项目上传到 jcenter ...

  5. 使用Gradle发布Android开源项目到JCenter

    喜欢做些开源项目的朋友,相信有不少人都希望能把自己的项目发布到公共的中央仓库,如maven中央仓库,以供别人方便地集成使用.而使用了Android Studio的同学,应该也对gradle和jcent ...

  6. Android studio 使用Gradle发布Android开源项目到JCenter 总结

    1.注册账号 先到https://bintray.com注册一个账号.  这个网站支持 github 账户直接登录的 2.获取  bintray.user  和 bintray.apikey      ...

  7. 教你一步步发布一个开源库到 JCenter

    今天想来分享下,如何一步步自己发布一个开源库到 JCenter 这方面的博客网上已经特别多了,所以本篇并不打算仅仅只是记录流程步骤而已,而是尽可能讲清楚,为什么需要有这个步骤,让大伙知其然的同时还知其 ...

  8. 使用Gradle发布项目到JCenter仓库 (转载)

    原文:使用Gradle发布项目到JCenter仓库 这篇文章介绍通过Gradle把开源项目发布到公共仓库JCenter中,方便你我他的事情,我们都是很懒的嘛.JCenter现在是Android Stu ...

  9. 使用Gradle发布SNAPSHOT版本到JCenter(oss.jfrog.org)

    回顾历史 发布SNAPSHOT版本的问题 解决问题 完整脚本 使用方法 本文原创. 转载请注明CSDN博客出处: http://blog.csdn.net/maosidiaoxian/article/ ...

随机推荐

  1. Codeforces Round #617 (Div. 3) String Coloring(E1.E2)

    (easy version): 题目链接:http://codeforces.com/contest/1296/problem/E1 题目一句话就是说,两种颜色不同的字符可以相互换位, 问,对这字符串 ...

  2. ROS中3D机器人建模(五)

    一.创建一个差速驱动移动机器人模型 前面我们已经创建了一个7-DOF机械臂机器人模型,接下来我们将创建一个差速机器人模型,差速轮式机器人在机器人底盘的两端安装两个轮子, 整个底盘由一个或两个脚轮支撑. ...

  3. 13、FrameRely

    Frame Relay 美国国家标准化协会(American National Standard Institute,简称ANSI)国际电信联盟远程通信标准化组 ITU-T 1.是由ITU和ANSI制 ...

  4. 3、IP地址划分

    划分子网方法:1.你所选择的子网掩码将会产生多少个子网?:2 的x 次方(x 代表被借走的主机位数)2.每个子网能有多少主机?: 2 的y 次方-2(y 代表被借走之后剩余的主机位数)3.块大小:bl ...

  5. 百度MP3音乐API接口及应用

    当你在百度去搜索一首歌时,你会发现有种更简单的方法. http://box.zhangmen.baidu.com/x?op=12&count=1&title=歌名$$作者$$$$ 例如 ...

  6. ImageButton去边框&Button或者ImageButton的背景透明

    在ImageButton中载入图片后,很多人会觉得有图片周围的白边会影响到美观,其实解决这个问题有两种方法 一种方法是将ImageButton的背景改为所需要的图片.如:android:backgro ...

  7. MySQL8.0数据库基础教程(二)-理解"关系"

    1 SQL 的哲学 形如 Linux 哲学一切都是文件,在 SQL 领域也有这样一条至理名言 一切都是关系 2 关系数据库 所谓关系数据库(Relational database)是创建在关系模型基础 ...

  8. 未来JDK中将不再包含JDBC-ODBC桥

    今天才发现一个重要问题,java中居然没有这个桥了.让初学者真的泪流了! 甲骨文公司主要技术人员.JDBC规范领导者Lance Andersen今天在博客中称,从Java SE 8(java 1.8版 ...

  9. java5循环结构一

    public class jh_01_循环学习需要用到的知识点 { public static void main(String[] args) { int a = 1;// 把数值1赋值给int类型 ...

  10. MySQL8.0关系数据库基础教程(三)-select语句详解

    1 查询指定字段 在 employee 表找出所有员工的姓名.性别和电子邮箱. SELECT 表示查询,随后列出需要返回的字段,字段间逗号分隔 FROM 表示要从哪个表中进行查询 分号为语句结束符 这 ...