史上最详细教程-Android library 发布到JCenter

1. Bintray账号

Bintray网站 https://bintray.com/(需要翻墙)
1.1 先注册账号(傻瓜式,非职业选手也能搞定)
1.2 然后登陆账号
1.3 点击your profile

1.png

1.4 点击Edit


2.png

1.5 点击API Key


3.png

1.6 将key复制下来保存,后边要用,然后回到网站首页


4.png

1.7 点击Add,建立仓库


5.png

1.8 填写信息,type选maven,其他随便写,然后create,之后会自己调到仓库页面


6.png

1.9 点击Add New Package创建Package


7.png

1.10 填写内容,带*为必填项,点击Create Package


8.png

1.11 点开Package后页面如下就ok了


9.png

2. 发布前配置信息

2.1 在项目根目录的 local.properties 文件中添加 Bintray 的账号信息:

bintray.user=用户名
bintray.apikey=第一步获取到的API key

2.2 在Project的build.gradle配置插件依赖

buildscript {    
    dependencies {        
        classpath 'com.android.tools.build:gradle:2.1.3'                 
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'  
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'   
    }
}

这里要说一下遇到的坑,原来'com.github.dcendents:android-maven-gradle-plugin:1.4.1'写的是1.3
执行的时候出现 Noservice of type Factory available in ProjectScopeServices
这里找到解决办法,貌似是AS版本问题

2.3 在model的build.gradle配置

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

version = "0.0.4"
group = "com.peipei.ptool"
def siteUrl = 'https://github.com/yadav-rahul/TastyToast' 
def gitUrl = 'https://github.com/yadav-rahul/TastyToast.git'
//compile 'com.facebook.rebound:rebound:0.3.8'
//这里的version就是上边rebound后边的版本号
//group就是com.facebook.rebound
//siteUrl 项目主页
//gitUrl 项目的git地址

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 24
        versionCode 4
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.1.1'
    compile 'com.facebook.rebound:rebound:0.3.8
}

install {
    repositories.mavenInstaller {
        pom {
            project {
                packaging 'aar'// 打包的类型
                name 'ptool'//项目名称
                description '描述'// 项目的描述
                url siteUrl// 项目的主页
                // 配置开源证书信息
                licenses {
                    license {
                        name 'The Apache software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                // 配置开发者信息
                developers {
                    developer {
                        id ''
                        name 'peipei'
                        email '****@gmail.com'
                     }
                }
                // 软件配置管理信息
                scm {
                    connection gitUrl
                    developerConnection gitUrl
                    url siteUrl
                 }
             }
        }
    }
}
//生成对应的source.jar
task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}
//生成java doc文件
task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    failOnError false
    // 忽略注释语法错误,如果用jdk1.8你的注释写的不规范就编译不过。
}
//生成对应的javadoc.jar
task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}
// 读取配置的bintray用户的信息
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
// 配置bintray的信息
bintray {
    user = properties.getProperty("bintray.user")
    key = properties.getProperty("bintray.apikey")
    configurations = ['archives']
    pkg {
        repo = "***"//在bintray上边建立的仓库名字
        name = "****"//在bintray上Package名字
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        labels = ['android'] // 设置标签
        licenses = ["Apache-2.0"]
        publish = true
    }
}
//javadoc生成的时候使用GBK编码,而项目使用的UTF-8编码。就需要加入以下代码
javadoc {
    options{
        encoding 'UTF-8'
        charSet 'UTF-8'
        author true
    }
}

配置完成后调用 Gradle 命令上传即可:
Terminal 输入 gradlew bintrayUpload

3. 同步到JCenter

10.png

点击Add to JCenter,等审核通过就可以用了

11.png

在Package页面可以找到 compile 'com.peipei.ptool:ptool:1.0.0'


12.png

这样就将library传到了JCenter

4. 可能的坑

  1. HTTP/1.1 409 Conflict
    版本存在

  2. java.net.SocketException: Software caused connection abort: socket write error
    翻墙吧

推荐一个比较简单的方法【Android】5分钟发布Android Library项目到JCenter 使用的是android-library-publish-to-jcenter,android-library-publish-to-jcenter已经将需要写的脚本封装好了,我们只需要配置相关属性即可在5分钟之内发布我们的项目到JCenter(不包括审核时间哦)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容