發佈開源項目到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填寫。

參考文檔

相關文章
相關標籤/搜索