1,创建自己Bittray账号

如果你在https://bintray.com/signup这个网站上注册的账号那就尴尬了。

java 账号下线 javalibrary账号_bintray-release

这个是以组织的名义注册的。是要求付费激活的,我一个不小心申请了一个,给你们看看。

java 账号下线 javalibrary账号_Library_02

个人注册的地址是:https://bintray.com/signup/oss

长这样的:

java 账号下线 javalibrary账号_Library_03

注册好像不能用QQ和163邮箱,反正我是没有注册成功的,最后我用了gmail邮箱。

个人账号登录进去之后是这样的,没有那个激活倒计时。

java 账号下线 javalibrary账号_bintray-release_04

2,项目中引入bintray-release

a,在项目的build.gradle中加入

dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        //引入bintray-release
        classpath 'com.novoda:bintray-release:0.3.4'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

b,在准备上传的module的build.grale中加入

apply plugin: 'com.novoda.bintray-release'//添加
publish{
    repoName = 'TestMaven'//不指明,默认是上传到maven
    userOrg = 'siyer-wu' //bintray 账户名
    groupId = 'com.siyer.test'//jcenter上的路径
    artifactId = 'testJCenter'//项目名称
    publishVersion = '1.0'//版本号
    desc = "这是一个测试的项目jar"
}

3,在JCenter中创建仓库和包

创建仓库:

java 账号下线 javalibrary账号_Android_05


创建之后我这里有2个仓库了

java 账号下线 javalibrary账号_Android_06

仓库的Name可以写maven(上传的时候不指定的话默认仓库名是maven),也可以不写maven我这就创建了一个不是maven,Type我选择maven,Licenses我选择的是Apache-2.

创建包:

java 账号下线 javalibrary账号_JCenter_07

需要注意的是这里的Name要和我们Project中配置的artifactId 一致,否则会上传失败。

4,上传Module

在Termainal执行命令

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

其中BINTRAY_USERNAME换成bintray注册的用户名,BINTRAY_KEY换成自己的APIKEY。dryRun是一个配置参数,当为true的时候,会运行所有的环节,但是不会上传。

在JCenter查看自己的APIKEY:

java 账号下线 javalibrary账号_JCenter_08

如果你按照上面的做,应该能上传成功了。

java 账号下线 javalibrary账号_bintray-release_09

然后进入JCenter页面看看我们刚上传的Library。

java 账号下线 javalibrary账号_JCenter_10

在TestMaven中真的有诶。

好了大功告成,但是你在JCenter中根本引用不了,但是也不是不可用。你可以这么引用它:

在工程的builde.gradle中加入:

allprojects {
    repositories {
        jcenter()
        //加入
        maven { url 'https://dl.bintray.com/siyer-wu/TestMaven' }
    }

在想要引入lib的module加入

ependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support.constraint:constraint-layout:+'
    compile 'com.android.support:design:23.4.0'
    //加入
    compile 'com.siyer.test:testJCenter:1.0'
    testCompile 'junit:junit:4.12'
    testCompile 'org.robolectric:robolectric:3.3.2'
}

然后你就可以在External Libraries中看到它了。

那如果想直接在JCenter中引用就好了,不需要自己定义Maven仓库地址,直接compile就可以。

进入上传Lib的详细信息页面:

java 账号下线 javalibrary账号_java 账号下线_11

直接提交申请就可以了,然后就是等消息了。JCenter会通过右上角的小邮箱提示你结果。

有个细节:

java 账号下线 javalibrary账号_bintray-release_12

红框框的地方。

jcenter是不提供snapshot版本发布的,如果需要托管snapshot版本,需要在申请时勾上“Host my snapshot build artifacts on the OSS Artifactory

at”的选项,这样审核通过后,可以使用bintray的账号登陆https://oss.jfrog.org,并且可以将snapshot版本托管到jfrog。

什么是snapshot版本,查看这里

realse版本和snapshot版本选择:查看这里

5,遇到的坑

* What went wrong:
Execution failed for task ':payecoPayPlugin:mavenAndroidJavadocs'.
> Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): 'E:\Users\Siy\testASWorkSpace\MyApplication\payecoPayPlugin\build\tmp
\mavenAndroidJavadocs\javadoc.options'

这个错误是JavaDoc错误,有可能是中文问题也有可能是不识别的javaDoc标签,这两个问题我都遇到了。

如果是中文问题在root的Gradle加入:

allprojects {
      tasks.withType(Javadoc) {
        options{
            encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api"
        }
    }
}


* What went wrong:
Execution failed for task ':payecoPayPlugin:bintrayUpload'.
> org.apache.http.conn.HttpHostConnectException: Connection to https://api.bintray.com refused