android 项目部署,Android发布项目到JCenter

JCenter是什么

大家应该都用过各种各样的Github上的第三方开源组件。类似这种效果的

compile 'wang.yuchao.demoforjcenterlibrary:DemoForJCenterLibraryModel:1.2.5'

我们会比较好奇Android Studio 是从哪里得到这个类库的?

Android Studio是从build.gradle里面定义的Maven仓库服务器上下载library的。Apache Maven是Apache开发的一个工具,提供了用于贡献library的文件服务器。但是由于maven仓库对开发人员不友好(原因在此),因此Android Studio 团队把默认仓库换成了JCenter。JCenter是一个由bintray.com维护的Maven仓库。我们在项目的build.gradle 文件中如下定义仓库,就能使用jcenter了。

allprojects {

repositories {

//mavenCentral()

jcenter()

}

}

为了更好的描述他们之间的关系,以及怎么发布一个项目到JCenter上,我下面用一个例子进行演示一下。

演示:发布项目到JCenter

第一步:准备工作

前言:本机环境

MAC OS 10.10.5

Android Studio 2.0

新建一个Android Studio Project

Application Name -> DemoForJCenter

根据 Application Name 会自动生成 Package Name 为 wang.yuchao.demoforjcenter

添加一个Android Library 类型的 Model

Model Name -> DemoForJCenterLibraryModel

Application/Library name -> DemoForJCenterLibrary

根据 Application/Library name 可以自动生成 Model Package Name 为 wang.yuchao.demoforjcenterlibrary

我们在此 Model 下面新建一个类 ToastUtil.java 用来测试

package wang.yuchao.demoforjcenterlibrary;

import android.content.Context;

import android.widget.Toast;

public class ToastUtil {

public static void show(Context context, String message) {

Toast.makeText(context, "DemoForJCenterLibrary:" + message, Toast.LENGTH_SHORT).show();

}

}

第二步:网站配置

Push 工程到 Github

方式一:点击 maven -> Import GitHub repositories 即可把Github的项目导入。(导入后Bintray生成的项目名默认是Github的项目名)

方式二:点击 maven -> Add New Package 后,根据提示写入各种信息后Create Package。(Version control 是必填项)

注意:为了详细的演示与讲解,我们使用上述方式二进行配置,并且为了区分Bintray上的Name跟Github默认的项目名,Bintray Name我们设置的不是Github默认的DemoForJCenter,而使用的是 DemoForJCenterName 。如下图。(但是建议:设置为Github默认的)

d75759435833

截图

第三步:本地配置

1. 打开本地Project的local.properties,最后添加

bintray.user=YOUR_BINTRAY_USERNAME

bintray.apikey=YOUR_BINTRAY_API_KEY

YOUR_BINTRAY_USERNAME是你在 https://bintray.com/ 的用户名

YOUR_BINTRAY_API_KEY是你在 https://bintray.com/ 的API_KEY(点击右上角用户名->your profile->edit ->Api Key)

2. 打开本地Project的gradel文件,dependencies节点下添加一些插件

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'

classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'

classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.1.1"

3. 打开本地要上传的Model(即DemoForJCenterLibraryModel)下的gradle文件,添加如下代码到最后

apply plugin: 'com.android.library'

ext {

bintrayRepo = 'maven'

bintrayName = 'DemoForJCenterName'

publishedGroupId = 'wang.yuchao.demoforjcenterlibrary'

libraryName = 'DemoForJCenterLibrary'

artifact = 'DemoForJCenterLibraryModel'

libraryDescription = 'This library is test for DemoForJCenter'

siteUrl = 'https://github.com/yuchao-wang/DemoForJCenter'

gitUrl = 'https://github.com/yuchao-wang/DemoForJCenter.git'

libraryVersion = '1.2.3'

developerId = 'wangyuchao'

developerName = 'yuchao-wang'

developerEmail = '1154786190@qq.com'

licenseName = 'The Apache Software License, Version 2.0'

licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'

allLicenses = ["Apache-2.0"]

}

apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'

apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

3.1 参数说明

参数

说明

publishedGroupId

Model Package Name

libraryName

Model Application/Library name(没啥用)

artifact

Model 名

libraryVersion

Model版本号

3.2 使用说明

compile 'publishedGroupId:artifact:libraryVersion'

第四步:发布项目到Maven及JCenter

1. 执行

./gradlew install

2. 执行

gradlew bintrayUpload

到目前为止,你已经成功地把类库文件上传到bintray上,接下来就是同步到jcenter上了。

4. 点击 Add to JCenter 等待JCenter审核即可。

测试一下

在等待审核的过程中,你可以先修改Project下的gradle文件进行测试。如果审核通过了以后,下面的maven节点也就可以注释掉了。

allprojects {

repositories {

maven {

// your bintray maven address . you can find it on

url 'https://dl.bintray.com/yuchao-wang/maven'

}

jcenter()

}

}

app model 下的gradle文件引入

compile 'wang.yuchao.demoforjcenterlibrary:DemoForJCenterLibraryModel:1.2.3'

番外篇

1. 踩过的坑

如果上传的过程中出现

Could not upload to 'https://xxxxxxx.pom': HTTP/1.1 400 Bad Request [message:Unable to upload files: Maven group, artifact or version defined in the pom file do not match the file path 'xxxxxxx.pom']

是因为module的名字和Model下gradle文件配置的artifact不一致导致的

2. 删除JCenter项目

Edit Your Profile -> Repositories ->

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java流与文件——对象流和序列化

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——对象流和序列化 的相关知识; 0.2) for source code , please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdva…

maven 版本号插件_测试Maven版本插件自动递增版本号

maven 版本号插件抽象 Maven版本插件是一个非常强大的工具,我在很大程度上依赖于它来协调软件版本。 通常,软件发行版本号遵循简单的1.0.0.0-SNAPSHOT格式。 但是最近我需要在版本号中添加一个限定符,例如1.0-beta-SNAPSHOT或1.0.0-fix-bug-d…

java中Date

在类 Date 所有可以接受或返回年、月、日期、小时、分钟和秒值的方法中,将使用下面的表示形式:年份 y 由整数 y - 1900 表示。月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。日期(一月中的某…

如何配置android的adb环境变量,如何配置adb环境变量?win7配置adb环境变量的方法...

本文教程小编分享就是win7系统配置adb环境变量的方法, windows7系统 电脑安装adb工具时,提示“adb不是内部或外部命令”这时候我们需要重新配置adb环境变量,那么win7系统怎么配置adb环境变量?网上介绍配置adb环境变量的方法比较少…

jep290涉及jdk版本_JDK 14 / JEP 305模式匹配“ Smart Casts”实例

jep290涉及jdk版本我通常将Java代码中instanceof运算符的存在视为“ 红色标志 ”,这意味着在某些情况下使用instanceof不一定是错误的,但是使用它有时表示可以通过更干净的方式解决设计问题,如所述本文结尾处引用的一些资源中的内容&#xff…

java中Date与DateFormat的格式输出

一、DateFormat java.text.DateFormat 使用 getDateInstance 来获取该国家/地区的标准日期格式。另外还提供了一些其他静态工厂方法。使用 getTimeInstance 可获取该国家/地区的时间格式。使用 getDateTimeInstance 可获取日期和时间格式。可以将不同选项传入这些工厂方法&…

二叉堆的操作总结(insert+deleteMin+increaseKey+decreaseKey+percolateDown+percolateUp)

【0】README 本文idea 均为原创, for source code, please visit https://github.com/pacosonTang/dataStructure-algorithmAnalysis/tree/master/chapter6/p140_binaryheap_conclusion 【1】insert操作 // Attention, the index of the heap starts from 1 void …

aws生态系统集成商_通过通用数据访问扩展AWS生态系统

aws生态系统集成商Amazon Web Services(AWS)可帮助组织托管和管理其数据流程,例如构建数据可视化和执行ETL任务。 在CData,我们可以轻松地将AWS Services与异构业务应用程序和分布式数据存储连接起来,以最终帮助企业对…

HTML.parser和正则解析,正则表达式+HTMLParser使用详.ppt

getText:/body getText: getText:/htmlgetText:除了前面3.2中输出的几个Tag,其余的Tag都在这里了。 3.4 XorFilter 把前面的AndFilter换成NotFilter测试代码: NodeFilter filterID new HasAttributeFilter( "id" );NodeFilter filterChild n…

FileDescriptor的作用

一、FileDescriptor 文件描述符类的实例用作与基础机器有关的某种结构的不透明句柄,该结构表示开放文件、开放套接字或者字节的另一个源或接收者。文件描述符的主要实际用途是创建一个包含该结构的 FileInputStream 或 FileOutputStream。 二、静态标准文件描述…

java流与文件——内存映射文件

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——内存映射文件 的相关知识; 0.2)内存映射文件的目的是: 提高访问速度, 缓冲区Buffer; 0.3) 本文干…

java 函数式编程 示例_功能Java示例 第8部分–更多纯函数

java 函数式编程 示例这是第8部分,该系列的最后一部分称为“示例功能Java”。 我在本系列的每个部分中开发的示例是某种“提要处理程序”,用于处理文档。 在上一期文章中,我们已经使用Vavr库看到了一些模式匹配,并且还将故障也视…

html加css作品,我的影视作品,如何在博客园发布带有CSS样式的HTML

总结一下,我做过的视频:(顺便试试在博客园如何发HTML网页)发布网页总结:HTML可以正常发送,但最好将你要发布的html文件放在一个带有ID的div中,这样方便后期添加样式时通过ID添加,不会影响到网页中的其他布局…

FileInputStream

java.ioClass FileInputStream java.lang.Object java.io.InputStream java.io.FileInputStream 所有已实现的接口: Closeable public class FileInputStream extends InputStream FileInputStream 从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。 Fil…

android console命令,我们可以通过两种方式进入Android的console: 1. 直接执行命令emulator -shell; 2....

Don’t use /usr 这样子编译出来的busybox才不会安装到你主机的/usr目录下。一定要选上。4 执行make编译源码. 如果编译过程中产生无法找到头文件的错误, 可指定交叉编译器用到的头文件所在路径. 如 $make -I./home/jo/tool/arm-2008q3/arm-none-linux-gnueabi/lib…

selenium 示例_Selenium测试中所需的功能和示例

selenium 示例所需功能是用于声明一组基本要求(例如浏览器,操作系统,浏览器版本等的组合)的类,以对Web应用程序执行自动跨浏览器测试。 当我们尝试通过Selenium自动化测试来自动化测试脚本时,我们需要考虑…

java流与文件——正则表达式

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——正则表达式 的相关知识; 0.2) there are my original source code below, and for them , please visit https://github.com/pacosonTang/core-ja…

pandoc讲html转换为pdf,mac下利用Pandoc、LaTeX 转换markdown成html,pdf

环境所使用的插件有pandoc,tlmgr,fc-listcssbrew install pandoc由于mac ox 系统生成pdf 须要找到对应的编码集 全部还须要去下载LaTeX,进行安装html5使用tlmgr工具安装全部要的包先进行更新,若是提示所须要的字体没有找到安装gitsudo tlmgr update --se…

java程序连接kafka_Java的Kafka:构建安全,可扩展的消息传递应用程序

java程序连接kafka使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护。 今天尝试Okta。 当今的用户希望可以通过其计算机,手机,平板电脑或任何其他设备访问您的应用…

信息系html5论文,基于HTML5的智力游戏设计电子信息工程本科学生毕业论文.doc

基于HTML5的智力游戏设计电子信息工程本科学生毕业论文本科学生毕业论文(设计)题目(中文):基于HTML5的智力游戏设计(英文):Design of Intelligent Game Based on HTML5姓 名 xxx学 号 xxx院 (系) 电子与信息工程学院专业、年级 电子信息工程指导教师 xxx…