Android 发布bintray采坑记

2024-04-15 17:58
文章标签 android 发布 采坑 bintray

本文主要是介绍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_VERSIONdef localReleaseDest = "${buildDir}\\release\\${version}"task androidJavadocs(type: Javadoc) {failOnError = falsesource = android.sourceSets.main.java.srcDirsext.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 = groupIdpom.artifactId = artifactIdpom.version = version// Add other pom properties here if you want (developer details / licenses)repository(url: "file://${localReleaseDest}")}
}task zipRelease(type: Zip) {from localReleaseDestdestinationDir buildDirarchiveName "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 androidSourcesJararchives androidJavadocsJar
}
第二步

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

ext {PUBLISH_GROUP_ID = 'com.tomcat.*'//自定义域名PUBLISH_ARTIFACT_ID = '*'//自定义artifactIdPUBLISH_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_IDartifactId = 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仓库前,保证项目可以构建成功,避免不必要的麻烦

后记

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

这篇关于Android 发布bintray采坑记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/906523

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D