Android 发布bintray采坑记

Android 发布bintray采坑记

笔记,不喜勿喷


方式一

参考:亲测:最简单的Android studio发布Library到Jcenter

准备工作

1、新建Android 工程和需要发布的依赖项目,并编译成功。
2、提交GitHub仓库(可省)
3、新建bintray 账号、仓库(含package和version)

第一步

在工程下新建"bintray.gradle"文件(参考项目中插件需要墙,所以没有梯子的朋友可以直接复制以下文件配置)

apply plugin: 'maven'

def groupId = project.PUBLISH_GROUP_ID
def artifactId = project.PUBLISH_ARTIFACT_ID
def version = project.PUBLISH_VERSION

def localReleaseDest = "${buildDir}\\release\\${version}"

task androidJavadocs(type: Javadoc) {
    failOnError = false
    source = android.sourceSets.main.java.srcDirs
    ext.androidJar = "${android.sdkDirectory}\\platforms\\${android.compileSdkVersion}\\android.jar"
    classpath += files(ext.androidJar)
}

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
    classifier = 'javadoc'
    from androidJavadocs.destinationDir
}

task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.srcDirs
}

uploadArchives {
    repositories.mavenDeployer {
        pom.groupId = groupId
        pom.artifactId = artifactId
        pom.version = version
        // Add other pom properties here if you want (developer details / licenses)
        repository(url: "file://${localReleaseDest}")
    }
}

task zipRelease(type: Zip) {
    from localReleaseDest
    destinationDir buildDir
    archiveName "release-${version}.zip"
}

task generateRelease {
    doLast {
        println "Release ${version} can be found at ${localReleaseDest}\\"
        println "Release ${version} zipped can be found ${buildDir}\\release-${version}.zip"
    }
}

generateRelease.dependsOn(uploadArchives)
generateRelease.dependsOn(zipRelease)


artifacts {
    archives androidSourcesJar
    archives androidJavadocsJar
}
第二步

在依赖module下"build.gradle"中引入以下内容

ext {
    PUBLISH_GROUP_ID = 'com.tomcat.*'//自定义域名
    PUBLISH_ARTIFACT_ID = '*'//自定义artifactId
    PUBLISH_VERSION = '1.0.0-bate'//版本号
}
apply from: "${rootDir.path}/bintray.gradle"
第三步

运行"bintray.gradle"中 generateRelease任务
运行成功后日志中会输出一个zip包路径。
进入 bintray的对应package中上传该zip包并发布。
在对应package详情页面将之添加到jcenter(有审核时间大约2-3小时,结果有bintray消息通知)。

方式二

参考:
1、https://github.com/HailouWang/bintray-release
2、利用bintray-release插件上传到Bintray- HTTP/1.1 404 Not Found [message:Repo ‘maven’ was not found]问题解决
3、Android 快速发布开源项目到jcenter

准备工作

同上

第一步

编辑工程build.gradle

//提取公共参数
ext {
    GROUP_ID = 'com.github.bluetomcat'//域名路径
    USERORG = 'tomcat'//bintray用户名  非常重要
    WEBSITE = 'https://github.com/bluetomcat/CheckUpdate'//项目主页  建议使用GitHub仓库地址  不重要
}

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.4'
        classpath 'com.novoda:bintray-release:+'//添加插件
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
	//中文乱码处理
    tasks.withType(Javadoc) {
        options{
            encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api"
        }
    }
}
第二步

编辑需要发布的依赖项目下"build.gradle"

apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'//添加插件

android {
	...
}

dependencies {
 ...
}

publish {
    userOrg = rootProject.USERORG//非常重要
    groupId = rootProject.GROUP_ID
    artifactId = project.name//项目名
    repoName = "maven"//bintray中仓库名 重要 默认"maven" 可修改为自定义的Maven类型仓库
    publishVersion = "v1.0.0-alpha"//版本号 非常重要
    desc = '这里是描述'
    website = rootProject.WEBSITE
}
注:publish 闭包设置参考

在这里插入图片描述

第三步

运行如下命令,提交文件到bintray仓库

Mac

$ ./gradlew clean build bintrayUpload -PbintrayUser=用户名(同"userOrg"参数) -PbintrayKey=bintray的API密钥  -PdryRun=false

Windows

gradlew clean build bintrayUpload -PbintrayUser=用户名(同"userOrg"参数)  -PbintrayKey=bintray的API密钥   -PdryRun=false
注:PbintrayKey获取步骤

1
2
3
输入bintray登录账号的密码获取
在这里插入图片描述

第四步

在对应package详情页面将之添加到jcenter(有审核时间大约2-3小时,结果有bintray消息通知)。

注:方式二比较容易出问题.需要注意几点

1、插件版本,尽量使用最新插件。(鄙人初次尝试失败原因,就是在高版本gradle中使用低版本插件)
2、bintray注册时,选择注册开源账户。
3、publish 闭包中userOrg 、repoName 、artifactId 、publishVersion 要和bintray中用户名、仓库名、package名、版本号 一一对应。(方式二准备阶段可以省略后两项的手动创建,单前两项必不可少)提交bintray仓库时会按照userOrg/repoName/artifactId/publishVersion的路径提交,如果前两不匹配,运行命令后就会输出HTTP 404
4、提交bintray仓库前,保证项目可以构建成功,避免不必要的麻烦

后记

上述两种方式都能成功,但是初次尝试时需要细心配置,耐心调试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值