发布开源项目到Jcenter

前言

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

如今记录下踩过的坑。java

注册Jcenter帐号

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

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

建立Repository

点击右上角View Profileweb

在帐号信息下方,咱们点击Add New Repository,建立新的仓库。spring

在填写信息的时候,选择Public(Private是须要付钱的,你们都懂),若是你是maven项目,仓库名最好填写maven,由于我在申请Add To Jcenter时,第一次失败了,要求我把项目放在maven路径下。网络

建立Package

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

建立完能够看到包的基本信息:maven

打包上传

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

主要在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填写。

参考文档

相关文章
相关标签/搜索