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默认的)

截图

第三步:本地配置

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 ->

参考

android 项目部署,Android发布项目到JCenter相关推荐

  1. JavaWeb开发---B/S和C/S模式 tomcat服务器 Tomcat项目部署和发布 静态网页和动态网页 tomcat对web项目的目录要求 使用idea开发工具创建web项目 设置默认首页

    目录 1. B/S和C/S模式 1.1 C/S模式 1.2 B/S模式 1.3 B/S和C/S区别 2.服务器 3.web 服务器 3.1.IIS 3.2.Tomcat 3.3.Zeus 3.4.Ng ...

  2. springboot 项目部署为war项目

    2019独角兽企业重金招聘Python工程师标准>>> 喜欢springboot的一点就是,既可以用jar包发布,也可以用war包发布.用jar包发布更加方便,用war包发布,放在同 ...

  3. 用IDEA把SpringBoot项目打成jar发布项目 不要用 在上面有可以用的

    用IDEA把SpringBoot项目打成jar发布项目 2019年03月27日 11:08:51 小天努力学java 阅读数 235更多 所属专栏: SpringBoot学习 版权声明:本文为博主原创 ...

  4. springboot项目打成可依赖jar包_用IDEA把SpringBoot项目打成jar发布项目

    打包发布 打包前确保项目在IDEA上能正常运行 Project Structure 快捷键 ctrl + shift + alt + s 或点击左上角 File -> Project Struc ...

  5. java项目部署_Java Web 项目的部署步骤

    关于java web项目的部署有很多种,我就把最近使用的一种跟大家分享下: 项目部署的前期准备: 1.XXX.war file 2.Tomcat server 当以上两项都准备好后,我们就可以开始项目 ...

  6. 面试宝典六-- 项目部署(linux环境搭建,springboot项目部署 ,vue项目部署,nginx负载均衡)

    环境准备 实际开发中,项目肯定是部署在一个个的linux系统服务器中的,学习过程中,可以在自己电脑上安装虚 拟机然后配置linux操作系统进行模拟项目部署,当然也可以花费较小费用使用各种平台提供的云服 ...

  7. J2EE项目部署与发布

    目录 1.首先打开虚拟机与客户端 创建一个新的文件夹(mkdir) 放入压缩包 (拖拽进入) ​编辑 解压文件 编辑环境变量 让配置生效 启动tomcat(./startup.sh) 端口已经开启 但 ...

  8. PHP项目部署-关于配置项目时出现:该网页无法正常运行-HTTP ERROR 500问题,如何进行排查

    排查方法: 1.打开php.ini,搜索以下 2个参数 display_errors ,display_startup_errors 将下值由Off 变更为 On. 2.重启nginx/apache ...

  9. python项目部署到url_项目上线部署

    # 安装包地址下载 https://dev.mysql.com/downloads/mysql/5.6.html # 卸载系统自带的Mariadb [root@kingstar home]# rpm ...

最新文章

  1. 推荐100份:高并发高可用和中台一网打尽
  2. 学了这些,他薪资涨了40%,收割了阿里、头条、快手等大厂的offer!
  3. keras 自定义层 2
  4. npm ERR! { Error: EPERM: operation not permitted, mkdir 'C:\Program Files\nodejs\node_cache\_locks'
  5. 计算机科学常见工具书清单、项目开发清单
  6. Ext2 中如何换行 布局?
  7. 使用Hystrix守护应用(1)
  8. 精选|2018年6月R新包推荐
  9. Kafka+Spark Streaming+Redis实时系统实践
  10. spring-boot推送实时日志到前端页面显示
  11. FPGA数字信号处理(十)ASK调制技术
  12. 乐易佳苹果手机恢复软件
  13. PHP 微信支付 企业支付个人 企业转账个人 企业转零钱
  14. c语言大小写字母互换1005,1005 Jugs,1005jugs
  15. android卡刷教程,卡刷是什么意思?安卓系统卡刷教程详解
  16. 算法练习:Sequence II
  17. (附源码)计算机毕业设计SSM基于大数据的汽车流量监控
  18. 刷机命令android手机刷机后,wifi无法使用的解决方法
  19. VMware ESXi 宕机分析过程
  20. ecstore2.0数据库词典

热门文章

  1. getopt java_Java命令行界面(第28部分):getopt4j
  2. java 编写代码_如果您在2016年编写过Java代码-这是您不容错过的趋势
  3. java高级教程_高级Java教程
  4. spring 请求转码_Spring请求级备忘录
  5. Java:可选的可选实现
  6. Mockito“ thenReturn” vs Mockito“ thenAnswer”
  7. 告诉我们您想要什么,我们将做到:消费者驱动的合同测试消息传递
  8. 在等待Jakarta EE时
  9. 使用JUnit 5测试异常
  10. javaone_JavaOne 2012:在JVM上诊断应用程序