为什么80%的码农都做不了架构师?>>>   

关于android发布仓库到外部项目的文章,目前大概为分两类:

一种是发布到bintray、jcenter上,一种是将项目上传到github,然后利用jitpack自动打包,下面简单说说各自的操作方法。

一.发布到bintray、jcenter

1.注册bintray账号

略过

2.获取自己的apikey

略过

3.在bintray上建立maven仓库

略过

4.配置项目的gradle文件

在项目的gradle文件的buildscript/dependencies节点添加以下两行代码:

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

5.配置项目的local.properties文件

sdk.dir=你的sdk路径
# 其实你只需要添加下面两行,第一个填你的用户名,比如我的是yolanda。
bintray.user=yolanda
bintray.apikey=fa************************5a

6.配置要上传的library/module的gradle文件

apply plugin: 'com.android.library'
// 这里添加下面两行代码。
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'android {compileSdkVersion 23buildToolsVersion "23.0.3"resourcePrefix "andserver_res_"defaultConfig {// applicationId "com.yanzhenjie.andserver.sample" // 这一行要删除,因为library不允许有applicationId。minSdkVersion 8targetSdkVersion 23versionCode 1versionName '1.0.1'}
}
dependencies {// 如果你的library有依赖别的jar,这里要把jar依赖进来。compile fileTree(dir: 'libs', includes: ['*.jar'])
}// 项目引用的版本号,比如compile 'com.yanzhenjie:andserver:1.0.1'中的1.0.1就是这里配置的。
version = "1.0.1"// 定义两个链接,下面会用到。
def siteUrl = 'https://github.com/yanzhenjie/AndServer' // 项目主页。
def gitUrl = 'git@github.com:yanzhenjie/AndServer.git' // Git仓库的url。// 唯一包名,比如compile 'com.yanzhenjie:andserver:1.0.1'中的com.yanzhenjie就是这里配置的。
group = "com.yanzhenjie"
install {repositories.mavenInstaller {// 生成pom.xml和参数pom {project {packaging 'aar'// 项目描述,复制我的话,这里需要修改。name 'AndServer For Android'// 可选,项目名称。description 'The Android build the framework of the Http server.'// 可选,项目描述。url siteUrl // 项目主页,这里是引用上面定义好。// 软件开源协议,现在一般都是Apache License2.0吧,复制我的,这里不需要修改。licenses {license {name 'The Apache Software License, Version 2.0'url 'http://www.apache.org/licenses/LICENSE-2.0.txt'}}//填写开发者基本信息,复制我的,这里需要修改。developers {developer {id 'yanzhenjie' // 开发者的id。name 'yanzhenjie' // 开发者名字。email 'smallajax@foxmail.com' // 开发者邮箱。}}// SCM,复制我的,这里不需要修改。scm {connection gitUrl // Git仓库地址。developerConnection gitUrl // Git仓库地址。url siteUrl // 项目主页。}}}}
}
// 生成jar包的task,不需要修改。
task sourcesJar(type: Jar) {from android.sourceSets.main.java.srcDirsclassifier = 'sources'
}
// 生成jarDoc的task,不需要修改。
task javadoc(type: Javadoc) {source = android.sourceSets.main.java.srcDirsclasspath += project.files(android.getBootClasspath().join(File.pathSeparator))// destinationDir = file("../javadoc/")failOnError false // 忽略注释语法错误,如果用jdk1.8你的注释写的不规范就编译不过。
}
// 生成javaDoc的jar,不需要修改。
task javadocJar(type: Jar, dependsOn: javadoc) {classifier = 'javadoc'from javadoc.destinationDir
}
artifacts {archives javadocJararchives sourcesJar
}// 这里是读取Bintray相关的信息,我们上传项目到github上的时候会把gradle文件传上去,所以不要把帐号密码的信息直接写在这里,写在local.properties中,这里动态读取。
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {user = properties.getProperty("bintray.user") // Bintray的用户名。key = properties.getProperty("bintray.apikey") // Bintray刚才保存的ApiKey。configurations = ['archives']pkg {repo = "maven"  // 上传到maven库。(这里要特别注意,如果写了maven报404错误,请在bintray创建一个仓库,这里填改成你创建的仓库的名字,如何创建请看下图。)name = "andserver"  // 发布到Bintray上的项目名字,这里的名字不是compile 'com.yanzhenjie:andserver:1.0.1'中的andserver。userOrg = 'bintray_user' // Bintray的用户名,2016年11月更新。websiteUrl = siteUrlvcsUrl = gitUrllicenses = ["Apache-2.0"]publish = true // 是否是公开项目。}
}

7.上传项目到Jcenter

  准备工作都做完啦,最后一步就是上传操作了,点击AndroidStudio底部的Terminal,观察下Terminal显示的路径是否是你当前项目的root。

  1. 这里如果你系统配置了gradle的用户环境,输入gradle install,如果没有配置gradle用户环境,输入gradlew install,如果没有问题,最终你会看到BUILD SUCCESSFUL
  2. 如果你看到了生成javadoc时编译不过,那么要看下在gradle中task javadoc下有没有failOnError false这句话,在刚才编写gradle时提示过了。如果加了这句而你的javadoc写的不规范会有警告,你不用鸟它。
  3. 最后一步,运行gradle install后看到BUILD SUCCESSFUL后,再输入上传命令gradle bintrayUpload,等一分钟左右就执行完了,会提示SUCCESSFUL
  4. 浏览器https://bintray.com/后会看到你的项目。

8.提交审核

审核通过后,就可以正常引用了

二.利用jitpack.io自动打包

1.配置项目的gradle文件

在项目的gradle文件的buildscript/dependencies节点添加以下代码:

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

2.配置要上传的library/module的gradle文件

apply plugin: 'com.github.dcendents.android-maven'
group='com.github.dessmann'

3.将项目上传到github

上传项目时,需要保证项目的gradle文件夹与gradlew、gradlew.bat也同步上传,不然jitpack可能无法打包

4.利用jitpack自动打包

在jitpack.io主页上粘贴github版本库的项目路径,执行发布,需要注意的是,如果是私有项目,需要在jitpack.io主页上切换到private,然后在网页底端找到授权的按钮,生成授权码,在下面引用的时候,如果引用的是私有项目,需要用到该授权码

5.在其他项目上引用

allprojects {repositories {maven {url 'https://jitpack.io'credentials { username authToken }//如果是私有项目,需要添加该行以供jitpack验证}google()jcenter()}
}

其中authToken是之前授权码

转载于:https://my.oschina.net/dccjll/blog/1576612

Android发布项目到外部仓库相关推荐

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

    JCenter是什么 大家应该都用过各种各样的Github上的第三方开源组件.类似这种效果的 compile 'wang.yuchao.demoforjcenterlibrary:DemoForJCe ...

  2. linux gradle仓库位置,如何在Android Studio中使用Gradle发布项目至Jcenter仓库

    简述 目前非常流行将开源库上传至Jcenter仓库中,使用起来非常方便且易于维护,特别是在Android Studio环境中,只需几步配置就可以轻松实现上传和发布. Library的转换和引用 博主的 ...

  3. Android Studio项目引入外部库注意事项(PullToRefresh)

    Android Studio开发App项目时引入第三方库是个比较麻烦的事情.之前导入Volley就折腾了好久,导入下拉刷新控件PullToRefresh时又碰到了各种问题.在此记录一下,以便查阅. 一 ...

  4. Android Studio项目整合PullToRefresh的问题记录

    PullToRefresh下拉刷新在App中应用非常频繁,然而PullToRefresh是在ADT下开发完成的.如果要将其整合到Android Studio目录下的话颇费周折.前面的文章"A ...

  5. android studio 库项目,Android Studio 发布项目到jcenter库

    第一次发布项目到jcenter,虽然网上有很多教程了,但是过程还是比较曲折.不过最终还是找到简单的方式,使用com.novoda.bintray-release实现发布. 认识jcenter 我们经常 ...

  6. Android 急速发布项目到 JitPack

    转载请标明出处: http://www.cnblogs.com/zhaoyanjun/p/5942616.html 出自[赵彦军博客] 2016/10/09 前言:以前写过一篇 Android stu ...

  7. Android studio 使用Gradle发布Android开源项目到JCenter 总结

    1.注册账号 先到https://bintray.com注册一个账号.  这个网站支持 github 账户直接登录的 2.获取  bintray.user  和 bintray.apikey      ...

  8. 如何发布Android Library到maven私有仓库

    前言 在我们的项目架构中,一定存在一些基础的模块,这些模块可以在多个app上通用,这种情况我们一般会将这些模块封装成Android Library统一维护,并上传到仓库方便其他小组使用.仓库可以选择如 ...

  9. 码云上传代码添加标签_[Android] 发布码云(Gitee)项目到JitPack(最全完整流程)

    最近把github上的代码都转移到了码云上,而且github上的仓库可以很方便的迁移到码云,所以老代码的迁移问题不用考虑. 之前使用 JCenter 发布了一个 GitHub 开源项目,JCenter ...

最新文章

  1. 比特币现金在稳定币领域的地位怎样
  2. git错误fatal: remote origin already exists.
  3. 每日两道前端面试题20190221
  4. OAuth 2.0: Bearer Token Usage
  5. 算法之排序算法-shell排序(交换法)
  6. 逻辑运算和作用域的问题
  7. VMware 披露严重0day,影响Workspace One 的多个组件
  8. Dubbo源码分析(一)Dubbo与Spring集成实例
  9. 19 个 K8S 日常故障处理集锦
  10. arcgis中dem坐标定义_ArcGIS中的地理坐标系转换方法参数(二) | 学步园
  11. 计算机绘图设备cmy,《计算机图形学》练习测试题库
  12. Linux中进程与线程的概念以及区别
  13. myloader还原恢复详解
  14. 川土微 | CA-IS3105W 全集成 DC-DC 转换器
  15. 测试视频软件支持的格式,支持82种视频格式!电视平台最强的本地播放器!
  16. python求职意向怎么写_怎样写好求职简历?
  17. 一生要看的50部经典电影
  18. 天啦噜!Stateflow动态测试竟然so easy
  19. 人工智能对生活的影响
  20. 如何用ps设计出一张吸引人眼球的创意节日海报?

热门文章

  1. Jquery实现的Tabs页签
  2. 使用Pixel Bender Toolkit制作特效——多像素采样(Part 4)
  3. POJ 2586 Y2K Accounting Bug(贪心)
  4. DataGrid基于Access的快速分页法
  5. 只在必要时保存服务器控件视图状态
  6. Gin源码解析和例子——路由
  7. 内嵌IE网页窗口中消除IE默认脚本设置影响的方法
  8. 开源库nothings/stb的介绍及使用(图像方面)
  9. C++11中enum class的使用
  10. python试题for循环布尔值_Python自我修炼(升仙中....整数,布尔值,字符串,for循环)