1. 想不想把自己的库也上传到jcenter,然后只需要一名话
  2. compile com.zzb.library:android-common:0.1.0 //(compile group_id:artifact_id:version)
  3. 就可以引用你的库?
  4. 按着下面的教程一步一步来就可以了

1.到https://bintray.com/注册一个账号

2.AndroidStudio创建一个项目,然后再在这个项目里创建一个library(File->New->New Module->Android Library)

3.打开项目根目录的gradle.properties文件,复制下面的内容,替换相应字段的值

  1. VERSION_NAME=0.1.0
  2. GROUP=com.zzb.library
  3. POM_NAME=jcenter test
  4. POM_ARTIFACT_ID=common
  5. POM_PACKAGING=aar
  6. #比如我们引用appcompat-v7,那么会这么写 compile 'com.android.support:appcompat-v7:22.2.0'
  7. #实际对应的字段就是 compile 'GROUP:POM_ARTIFACT_ID:VERSION_NAME'
  8.  
  9. POM_DESCRIPTION=项目描述
  10. #项目地址等,我这使用的是github的项目地址
  11. POM_URL=https://github.com/BaronZ/android-common-library
  12. POM_SCM_URL=https://github.com/BaronZ/android-common-library
  13. POM_SCM_CONNECTION=scm:git:git://github.com/BaronZ/android-common-library.git
  14. POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/BaronZ/android-common-library.git
  15.  
  16. #开源协议
  17. POM_LICENCE_NAME=The Apache Software License, Version 2.0
  18. POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
  19. POM_LICENCE_DIST=repo
  20.  
  21. POM_DEVELOPER_ID=zzb
  22. POM_DEVELOPER_NAME=ZZB
  23.  
  24. POM_DEVELOPER_EMAIL=realbo89@outlook.com
  25. POM_DEVELOPER_URL=http://baronz.github.io
  26.  
  27. GIT_URL=https://github.com/BaronZ/android-common-library.git
  28. ISSUE_URL=https://github.com/BaronZ/android-common-library/issues

4.项目目录下build.gradle,dependencies添加引用

  1. dependencies {
  2. classpath 'com.android.tools.build:gradle:1.2.3'
  3. classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
  4. }

注,如果不自己写gradle脚本,可跳过步骤5和6

5.项目目录下gradle目录添加文件gradle-jcenter-push.gradle,内容如下

  1. apply plugin: 'maven-publish'
  2. apply plugin: 'com.jfrog.bintray'
  3.  
  4. publishing {
  5. publications {
  6. mavenJava(MavenPublication) {
  7. groupId GROUP
  8. version VERSION_NAME
  9. artifactId POM_ARTIFACT_ID
  10. artifact "${project.buildDir}/outputs/aar/${project.name}-release.aar"
  11. artifact androidJavadocsJar
  12. artifact androidSourcesJar
  13.  
  14. pom.withXml {
  15. Node root = asNode()
  16. root.appendNode('name', POM_ARTIFACT_ID)
  17. root.appendNode('description', POM_DESCRIPTION)
  18. root.appendNode('url', POM_URL)
  19.  
  20. def issues = root.appendNode('issueManagement')
  21. issues.appendNode('system', 'github')
  22. issues.appendNode('url', ISSUE_URL)
  23.  
  24. def scm = root.appendNode('scm')
  25. scm.appendNode('url', POM_SCM_URL)
  26. scm.appendNode('connection', POM_SCM_CONNECTION)
  27. scm.appendNode('developerConnection', POM_SCM_DEV_CONNECTION)
  28.  
  29. def license = root.appendNode('licenses').appendNode('license')
  30. license.appendNode('name', POM_LICENCE_NAME)
  31. license.appendNode('url', POM_LICENCE_URL)
  32. license.appendNode('distribution', POM_LICENCE_DIST)
  33. }
  34. }
  35. }
  36. }
  37.  
  38. def getBintrayUserProperty() {
  39. return hasProperty('BINTRAY_USER') ? BINTRAY_USER : ""
  40. }
  41.  
  42. def getBintrayApiKeyProperty() {
  43. return hasProperty('BINTRAY_APIKEY') ? BINTRAY_APIKEY : ""
  44. }
  45.  
  46. // gradle bintrayUpload
  47. bintray {
  48. user = getBintrayUserProperty()
  49. key = getBintrayApiKeyProperty()
  50. publications = ['mavenJava']
  51.  
  52. dryRun = false
  53. publish = true
  54. pkg {
  55. repo = 'maven'
  56. name = POM_ARTIFACT_ID
  57. desc = POM_NAME
  58. websiteUrl = POM_URL
  59. issueTrackerUrl = ISSUE_URL
  60. vcsUrl = GIT_URL
  61. licenses = ['Apache-2.0']
  62. labels = ['android', 'aar']
  63. publicDownloadNumbers = true
  64.  
  65. version {
  66. name = VERSION_NAME
  67. vcsTag = VERSION_NAME
  68. }
  69. }
  70. }

6.项目目录下gradle目录添加文件android-artifacts.gradle,内容如下

  1. task androidJavadocs(type: Javadoc) {
  2. source = android.sourceSets.main.java.srcDirs
  3. classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
  4. }
  5.  
  6. task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
  7. classifier = 'javadoc'
  8. from androidJavadocs.destinationDir
  9. }
  10.  
  11. task androidSourcesJar(type: Jar) {
  12. classifier = 'sources'
  13. from android.sourceSets.main.java.sourceFiles
  14. }

7.在library目录下的build.gradle底部添加下面两行脚本

如果是执行了5和6,用下面脚本

  1. apply from: rootProject.file('gradle/android-artifacts.gradle')
  2. apply from: rootProject.file('gradle/gradle-jcenter-push.gradle')

如果没有5和6,用下面脚本

  1. apply from: 'https://raw.githubusercontent.com/BaronZ/android-common/master/gradle/android-artifacts.gradle'
  2. apply from: 'https://raw.githubusercontent.com/BaronZ/android-common/master/gradle/gradle-jcenter-push.gradle'

8.登录bintray.com创建maven库

  • 点击maven
  • 点击Add New Package
  • 填入相应的信息,再点Create Package即可
  • 回到bintray主页,点击edit
  • 点击API Key
  • 点击show,记下你的API Key,等下要用

9.找到你home目录下的gradle.properties(windows下目录是C:\Users\你的电脑名称\.gradle),添加下面两行脚本

  1. BINTRAY_USER=你的bintray.com的用户名
  2. BINTRAY_APIKEY=上面一步让你记下的API Key

10.好了,敲下面命令,坐等上传成功,cmd->进入你的项目目录(注,执行下面的命令,请确保设置好环境变量,path里面有gradle/bin,有JAVA_HOME环境变量)

  1. gradle clean build bintrayUpload

如果看到执行结果如下,那么恭喜你,还差一步

如果在生成Javadoc的时候遇到'编码GBK的不 可映射字符'错误,打开gradle/android-artifacts.gradle

添加下面代码到androidJavadocs这个任务里面

  1. allprojects {
  2. tasks.withType(Javadoc) {
  3. options.encoding = "UTF-8"
  4. }
  5. }

即完整脚本如下

  1. task androidJavadocs(type: Javadoc) {
  2. source = android.sourceSets.main.java.srcDirs
  3. classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
  4. allprojects {
  5. tasks.withType(Javadoc) {
  6. options.encoding = "UTF-8"
  7. }
  8. }
  9. }

11.还需要点add to jcenter,坐等审核通过

12.几个小时后,当你看到下面的截图,恭喜你,可以引用的你库了

13.下面一句话,引用你的库,大功告成

  1. compile com.zzb.library:android-common:0.1.

14.升级

确保global/gradle.properties里的BINTRAY_USER是正确的

修改library/gradle.properties的VERSION_NAME即可

命令:gradle clean build bintrayUpload

使用gradle上传项目到jcenter的更多相关文章

  1. Mac使用Gradle上传jar到中央仓库(最完整的采坑记录)

    前言 当我们封装完成我们自己做的工具之后,那我们肯定想要发给别人让别人来进行使用,上传到中央仓库是一种引入时最方便的选择. 网上有很多教程,但是大多都是maven和windows的环境. 今天就来记录 ...

  2. Windows下上传项目到github

    首先,一定要有耐心.看到一大堆的命令行(其实并没有一大堆)不要觉得枯燥,最后当你成功把你的项目上传上去之后那种胜利的成果,还是挺有意思的.本人第一次写博客,勿喷. 我写的是主要的流程,详细内容还请移步 ...

  3. gradle上传jar包到maven公共仓库

    首先这里说的中央仓库 是指的 https://issues.sonatype.org/ 而不是maven私服. 其次是使用gradle上传jar包,maven上传,网上有很多教程,这里不做赘述. 首选 ...

  4. git上传项目代码到github

    参考: git学习——上传项目代码到github github上传时出现error: src refspec master does not match any解决办法 git 上传本地文件到gith ...

  5. GitHub教程--上传项目四步法 GitBash命令行下使用方法

    之前就用过GitHub,感觉用GitHub托管自己的代码非常不错.可是之前用的都是窗口化的TortoiseGit,省了很多命令行的操作,但是个人非常喜欢使用命令行,于是,今天就试着用了用GitBash ...

  6. svn用Cornerstone上传项目丢失静态库.a问题的解决

    最近电脑重装系统后,装上Cornerstone上传项目后,发现又有丢失.a文件的问题,这里说一下解决办法,打开Preferences-->Subversion-->General,将Use ...

  7. 在Eclipse里面使用git上传项目到码云

    Eclispe上使用git 1.安装git 按照下图的步骤: 安装过就不用再安装了,没有安装的安装一下! 安装完毕之后:需要做一些初始化的设置: 2.上传项目到码云上 1.首先在码云上建立一个项目 2 ...

  8. IDEA上传项目至git

    今天来分享一下从idea上传项目至coding的过程. 本文基于windows系统. idea提供了很方便的控制git的界面化操作,除了安装git和一些必要的配置之外,用到命令行的地方会非常少. 1: ...

  9. Android快速实现上传项目到Github

    本文为skylinelin原创,转载请注明出处! 一.简介 现在在网上浏览关于Git的文章,基本上都是使用命令行(Git Bash),命令行效率是很高的,但是有一定的复杂性,现在我们看如何用AS来讲项 ...

随机推荐

  1. Android AbsoluteLayout绝对布局

    绝对布局也叫坐标布局,指定元素的绝对位置,因为适应性很差,一般很少用到.可以使用RelativeLayout替代. 常用属性: android:layout_x --------组件x坐标 andro ...

  2. mysql高可用研究(二) 主从+MHA+Atlas

    关于Atlas的详细介绍请访问:https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md 为什么要使用Atlas?应用程序直连数据库不好吗? ...

  3. mini2440移植uboot 2014.04(四)

    我修改的代码已经上传到github上,地址:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440.git 参考文章: <mini2440移植u ...

  4. HDU 之 City Game

                                                                                      City Game Time Lim ...

  5. java:Eclipse:Could not create the view:解决办法

    Eclipse:Could not create the view: Plug-in org.eclipse.jdt.ui was unable to load class org.eclipse.j ...

  6. double 与0比较时有个精度问题,有时需精确到小数点后面几位,例如与>0.0001,而不能与>0比较

    double 与0比较时有个精度问题,有时需精确到小数点后面几位,例如与>0.0001,而不能与>0比较 例如杭电1408 盐水的故事 ac #include<iostream> ...

  7. string 中的 length函数 和size函数 返回值问题

    string 中的 length函数 和 size函数 的返回值  (  还有 char [ ] 中 测量字符串的  strlen 函数 ) 应该是 unsigned int 类型的 不可以 和 -1 ...

  8. error: reference to 'max' is ambiguous

    1.     自定义的变量名    与      库中的      重名了

  9. Android studio导入第三方类库源码以及jar包

    新建一个Android项目,项目结构如下: 1.添加第三方类库源码 首先将第三方类库考入与app同级的目录下: 之后,在build.gradle(Moudule:app)下添加编译代码:在seting ...

  10. Hibernate学习---第十四节:hibernate之session线程安全

    1.hibernate.cfg.xml 文件中添加如下代码开启线程安全: <property name="hibernate.current_session_context_class ...