如何发布你的GitHub开源库
如果你想在Android Studio中引入一个library到你的项目,你只需添加如下的一行代码到模块的build.gradle文件中。
dependencies {
compile 'com.github.xuerui1993:AutoViewPagerLibrary:v1.3'
}
就是如此简单的一行代码,你就可以使用这个library了。
酷呆了。不过你可能很好奇Android Studio是从哪里得到这个library的。这篇文章将详细讲解这是怎么回事,包括如何把你的库发布出去分享给世界各地的其他开发者,这样不仅可以让世界更美好,还可以耍一次酷。
Android studio 是从哪里得到库的?
先从这个简单的问题开始,我相信不是每个人都完全明白Android studio 是从哪里得到这些library的。莫非就是Android studio 从google搜索然后下载了一个合适的给我们?
呵呵,没那么复杂。Android Studio是从build.gradle里面定义的Maven 仓库服务器上下载library的。Apache Maven是Apache开发的一个工具,提供了用于贡献library的文件服务器。总的来说,只有两个标准的Android library文件服务器:jcenter 和 Maven Central。
jcenter
jcenter是一个由 bintray.com维护的Maven仓库 。你可以在这里看到整个仓库的内容。
我们在项目的build.gradle 文件中如下定义仓库,就能使用jcenter了:
allprojects {
repositories {
jcenter()
}
}
Maven Central
Maven Central 则是由sonatype.org维护的Maven仓库。你可以在这里看到整个仓库。
注:不管是jcenter还是Maven Central ,两者都是Maven仓库
我们在项目的build.gradle 文件中如下定义仓库,就能使用Maven Central了:
allprojects {
repositories {
mavenCentral()
}
}
注意,虽然jcenter和Maven Central 都是标准的 android library仓库,但是它们维护在完全不同的服务器上,由不同的人提供内容,两者之间毫无关系。在jcenter上有的可能 Maven Central 上没有,反之亦然。
除了两个标准的服务器之外,如果我们使用的library的作者是把该library放在自己的服务器上,我们还可以自己定义特有的Maven仓库服务器。Twitter的Fabric.io 就是这种情况,它们在https://maven.fabric.io/public上维护了一个自己的Maven仓库。如果你想使用Fabric.io的library,你必须自己如下定义仓库的url。
repositories {
maven { url 'https://maven.fabric.io/public' }
}
然后在里面使用相同的方法获取一个library。
dependencies {
compile 'com.crashlytics.sdk.android:crashlytics:2.2.4@aar'
}
这里向大家推荐一个免费的仓库服务器,JitPack,同理需要定义jitpack的服务器地址
allprojects {
repositories {
jcenter()
maven {
url 'https://jitpack.io'
}
}
然后在app的build.gradle文件下配置
dependencies {
compile 'com.github.xuerui1993:AutoViewPagerLibrary:v1.3'
}
这就是为什么很多github开源库上需要加上这一行配置了。
了解aar文件
aar文件时在jar文件之上开发的。之所以有它是因为有些Android Library需要植入一些安卓特有的文件,比如AndroidManifest.xml,资源文件,Assets或者JNI。这些都不是jar文件的标准。
因此aar文件就时发明出来包含所有这些东西的。总的来说它和jar一样只是普通的zip文件,不过具有不同的文件结构。jar文件以classes.jar的名字被嵌入到aar文件中。其余的文件罗列如下:
- /AndroidManifest.xml (mandatory)
- /classes.jar (mandatory)
- /res/ (mandatory)
- /R.txt (mandatory)
- /assets/ (optional)
- /libs/*.jar (optional)
- /jni/<abi>/*.so (optional)
- /proguard.txt (optional)
- /lint.jar (optional)
可以看到.aar文件是专门为安卓设计的。在AndroiStudio中你创建一个Libaray项目,就会自动创建一个arr文件了
上传你的项目到开源库
- 首先你得将你的项目变成Libaray类型的,然后发布到GitHub上.这里我就不多少怎么发布到github上了.
2.打开你的GitHub项目,生成Release文件
3.填写版本号,和一些描述信息
1507191288(1).jpg4.发布完成后,打开https://jitpack.io/,然后输入你的github项目地址
1507196171(1).jpg5.得到你的项目的服务器地址
1507191532(1).jpg6.按照上面的操作,你就可以在你的项目中添加依赖使用了