AndroidStudio怎么将开源项目发布到jcenter
前言
自己在网上搜了一大堆,大体就两种方法,而我选择的是其中代码少的的方法,不过他们或多或少留下了少许的坑,(按他们的方法我是上传成功,但不能发布到jCenter上去,也可能是我自己的问题o(≧v≦)o~~),文章中我会提到那些坑,希望能帮你减少没必要的时间。
如何把自己写的项目让别人依赖呢,像compile 'com.google.code.gson:gson:2.6.2'一样?
上面的依赖library需要3各部分,即:GROUP_ID:ARTIFACT_ID:VERSION,其中GROUP_ID是com.google.code.gson(库的包名),ARTIFACT_ID是gson(类库名称),VERSION是2.6.2(版本号)。
怎么上传你的类库到jcenter仓库?
基本上大致的步骤可以慨括为,在AndroidStudio上准备好要上传的库项目,配置相关gradle代码,然后上传到bintray网站上,最后同步到jcenter仓库里。
- 在bintray.com上面注册一个账号,可使用github账号登录。
- 创建一个新的仓库,如下图所示
坑一
图中的Name编辑框处,他们都是填写maven,其实是可以填写任意英文的,可以大小写混写
- Create Package成功后,就可以看到我们刚创建的Package,如下图所示
上面的 Issues tracker,例如:https://github.com/DyncKathline/SwipeBackLayout/issues
Version control *, 例如:https://github.com/DyncKathline/SwipeBackLayout把自己的Android Studio类库pull到jcenter上去
在这里我们将要上传的是Android Library module,如下图所示。
坑二
图中的module下的build.gradle红色框中artifact的值必须要和module项目名称相同,不然添加到jCenter库中审核会失败,原因是存在两种路径,我之前就是看到其他文章都没解释,导致我的库一直不能通过审核。可参考我的https://dl.bintray.com/dynckathline/SwipeBackLayout/,如果你的和我的类似,审核应该是会通过的。
然后我们需要设置bintray的username和API Key来进行bintray的加密认证,这些信息将写在local.properties文件里。写在local.properties的原因在于,bintray的username和APIKey是敏感的私人信息,自己应该保管好,而不是把它上传到github上,正好把local.properties文件写在.gitignore里面过滤掉不会影响上传的github项目。
代码如下:bintray.user=YOUR_BINTRAY_USERNAME
bintray.apikey=YOUR_BINTRAY_API_KEY这里的username就是你bintray账号的用户名,APIKey可以在bintray页面的Edit Profile找到。
在要上传的类库module的build.gradle文件里添加如下代码:apply plugin: 'com.android.library' android {
compileSdkVersion 23
buildToolsVersion '23.0.3' defaultConfig {
minSdkVersion 11
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
} dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.4.0'
} //解决 gradlew 构建错误: 编码 GBK的不可映射字符
tasks.withType(Javadoc) {
options.encoding = "UTF-8"
} ext {
bintrayRepo = 'SwipeBackLayout' //这个应该是传到maven的仓库的,即在Open Source Repository界面
bintrayName = 'SwipeBackLayoutLibrary' //发布的项目名字,即在Create New Package界面 //GROUP_ID:ARTIFACT_ID:VERSION
publishedGroupId = 'org.dync.kathline'//依赖时的GROUP_ID
libraryName = 'SwipeBackLayoutLibrary'
artifact = 'swipebackactivity'//依赖时的ARTIFACT_ID,这里要与类库名保持一致,即项目的module名 libraryDescription = 'With immersion sideslip the effect of closed Activity' //项目的描述 siteUrl = 'https://github.com/DyncKathline/SwipeBackLayout' // 项目的主页
gitUrl = 'https://github.com/DyncKathline/SwipeBackLayout.git' // Git仓库的url libraryVersion = '1.0.1' //依赖时的VERSION developerId = 'dync'
developerName = 'DyncKathline'
developerEmail = 'xiongxuesong@dync.cc' 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'这里可以参考以下图
在这里需要把bintrayName写成之前Create Pacakge所填写的package name,publishedGroupId就是我们之前提到的GROUP_ID,artifact就是之前提到的ARTIFACT_ID,libraryVersion就是VERSION。
然后在project的build.gradle里添加以下代码:// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3' // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
}
} allprojects {
repositories {
jcenter()
}
} task clean(type: Delete) {
delete rootProject.buildDir
}最后在AndroidStudio提供的Terminal窗口执行如下命令:
gradlew install如果顺利的话,过几分钟就会出现
BUILD SUCCESSFUL接下来需要把build成功的文件upload到bintray上
gradlew bintrayUpload顺利的话,也会出现
BUILD SUCCESSFUL最后你可以在jcenter上看到如下图所示:
到了这里我们只要在上图点击“Add 头jCenter”,如下图所示:
接下来会跳到一个Request to include package GradientUI in jcenter的页面,什么都不用做,直接点击Send按钮就可以了。大概过个把小时,通过jcenter那边的审核就会在bintray上收到jcenter那边的同意消息提醒。 至此就要恭喜你,你的类库上传到jcenter成功了!
到这里大家就可以用自己的类库了,仅仅只需要添加一行代码:dependencies {
compile 'org.dync.kathline:swipebackactivity:1.0.1'
}转载请注明出处,谢谢!
AndroidStudio怎么将开源项目发布到jcenter的更多相关文章
- 如何把开源项目发布到Jcenter
转载自:https://www.jianshu.com/p/f66972f0607a 首先我们应该注册一个JFrog Bintray的账号 Jfrog Bintray官网 这里我们可以注意到那个绿色的 ...
- 将Gradle项目发布到Jcenter和Maven Central
Jcenter和Maven Central 为了方便我们理解Android studio是如何帮助我们获取开源库的,我们需要理清几个概念.Apache Maven是Apache开发的一个工具,提供了用 ...
- android开源库发布到jcenter图文详解与填坑
相信很多人都用过开源项目,特别是android studio普及以后,使用开源库更方便简单.而如何上传开源库到jcenter供大家方便使用,虽然网上也有教程,但还是遇坑了,最后总结一下,希望可以帮助大 ...
- Android Library项目发布到JCenter最简单的配置方法
前沿 网上的步骤看起来实在太麻烦,gituhb上偶然间看到的一个项目,经过实际验证确实可行.github连接:https://github.com/xiaopansky/android-library ...
- YourSQLDba开源项目发布到codeplex网站了
今天登录YourSQLDba的官方网站http://yoursqldba.grics.ca/index_en.shtml,发现YourSQLDba项目已经发布到开源网站http://www.codep ...
- 关于cmake和开源项目发布的那些事(PF)
本来是打算写一篇年终总结,随便和以往一样提一提自己的开源项目(长不大的plain framework)的一些进度,不过最近这一年对于这个项目实在是维护不多,实在难以用它作为醒目的标题.而最近由于使用了 ...
- 如何使Android Studio项目发布到Jcenter中
Android仓库 简单的普及下关于android的依赖仓库,有两种分别是Jcenter与Maven Central其实不管是Jcenter还是Maven Central都是Maven库. Jcent ...
- 一步一步教你将开源项目上传到jcenter
最近闲着看了一下jcenter的使用,也想将自己使用频率比较高的东西抽成类库,然后通过compile来使用,提高开发效率,本来以为挺简单的,但是网上介绍的比较模糊,很多博客也比较老了,不适用,花了我一 ...
- [转]使用Gradle发布Android开源项目到JCenter
转自:http://blog.csdn.net/maosidiaoxian/article/details/43148643 使用Gradle发布Android开源项目到JCenter 分类: G ...
随机推荐
- 创建基于文件组的数据库SQL救命语句
CREATE DATABASE Sales ON PRIMARY (NAME = SPri1_dat, FILENAME = 'D:\SQLDB\SPri1dat.mdf', SIZE , MAXSI ...
- [转贴]一个将表格变成 INSERT 的SQL 语句的存储过程(sql server)
来源自http://vyaskn.tripod.com/code.htm#inserts SET NOCOUNT ON GO PRINT 'Using Master database' USE mas ...
- 2016 Web 开发资源工具大搜罗
原文链接: 100+ Awesome Web Development Tools and Resources Web的迅猛发展对于开发者来说既是一件好事也是一件坏事.不断紧跟潮流学习新的技术.编程语言 ...
- 在eclipse中使用jetty插件替代m2e开发调试maven web项目
第一步在相应的web项目上配置jetty插件,配置如下: <plugin> <groupId>org.mortbay.jetty</groupId> <art ...
- -_-#【JS】element.click()
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- ☀【CSS3】icon
Navicon Transformicons: Animated Navigation Icons with CSS Transformshttp://sarasoueidan.com/blog/na ...
- 大白书 209 remember the word
F - Remember the Word Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Sub ...
- android获取package name
下载apk resigner(此被,,) 另外一个下载url 配置好android 环境,ANDROID_HOME 和路径直接到sdk,将.apk拖到此apk resigner,将会得出package ...
- VS2013项目受源代码管理向源代码管理注册此项目时出错
在使用TFS的时候有时出现无法加载项目,后来删除项目添加也是不行 编译项目的时候提示如题的错误,用记事本打开出错的几个项目的.csproj文件,把下面几行内容删掉就行了. <SccProject ...
- ARM学习笔记2——分支跳转指令
一.Arm指令条件码和条件助记符 二.跳转指令B 1.作用 跳转指令B使程序跳转到指定的地址执行程序(跳转范围是PC-32MB到PC+32MB) 2.指令格式(注:B后面如果有条件,条件就是紧跟在B后 ...