android 开发中,为了不重复造轮子,我们经常会使用别人写好的代码直接拿来用。在lib种加入别人的jar包或者aar包,或者依赖别人的库文件。
还有比较常用的是直接配置一个maven地址,用compile xxxx.xxx.x直接就可以使用了。比如:
我们项目使用了一个pdf加载的外部库,直接这样就导入了外部库,十分方便。
这种方式是最好的一种,服务器的lib更新了,这边可以同步更新,还可以指定特定版本的lib库文件。
下面我们使用github来创建一个自己maven库,一边以后我们可以把自己总结归纳的一些代码放上去,一边在后面的项目中使用,或者其他人使用。
打开android studio创建我们的项目,我随便创建了一个名字叫my_maven,这个主要用来一会儿测试我们生成的库文件的,随便创建一个就行
为我们的项目先创建一个module,这个就是后面我们需要提交到github上面去的库,随便创建一个
点击file》》new-module》》android library
我创建了一个名字为mylib的module,名字随便取,按照你需要取就行
我们这个module的作用很简单,就是一个打印日志的简单封装。 这里只讲怎么把库房github上面,库的功能我们不关心。
如下,一个简单的log打印,可以控制,是否打印日志,可以修改tag标签
好了,我们先在我们刚创建的项目里面使用一下这个工具库,很简单,直接
compile project(':mylib')
在我们的界面调用一下这个工具类
进测试,这个工具类可以用,好了,我们这个库创建好了,然后觉得它比较实用,想分享给奇特人使用,或者想留着以后项目中使用,那么我们继续下面.生成maven的配置文件,然后上传github
在madule的 build.gradle中加入如下代码
apply plugin: 'maven'
和
uploadArchives {
repositories.mavenDeployer {
//maven 本地文件地址
def mavenLib = file(getProperty('mavenPath'))
repository(url: "file://${mavenLib.absolutePath}")
pom.project {
version 1.0
groupId GROUDID
artifactId ARTIFACTID
}
}
}
在项目根目录gradle.properties中加入
mavenPath = H:/maven/
GROUDID=com.hck.lib.log
ARTIFACTID = hck
mavenPath 这个是我们一会儿生成配置文件,所放置的文件夹路径,我放在h盘,maven目录里面
gradle.properties,ARTIFACTID 和build.gradle种的GROUDID,ARTIFACTID是对应的
groupId定义了library的group。有可能在同样的上下文中存在多个不同功能的library。如果library具有相同的group,那么它们将共享一个groupId。通常我们以开发者包名紧跟着library的group名称来命名,比如com.hck.lib。然后artifactId中是library的真实名称。至于VERSION,就是版本号而已,虽然可以是任意文字,但是我建议设置为x.y.z的形式
compile 'com.github.barteksc:android-pdf-viewer:2.8.2'
com.github.barteksc相当于groupId
barteksc相当于 artifactId
2.8.2及是version
上面我们就定义配置了一个 com.hck.lib.log:hck:1.0 这样的一个maven库文件路径。以后再项目中,就使用这个路径了
配置好上面后,记得rebuild studio一下,保证studio没报错,然后再看下图:重点
看studio右边的 gradle,如图,双击箭头所指,进行build
完成后,就可以看见 H盘的maven文件夹里面多了新的文件
看见没有aar已经生成了,然后我们把maven里面的所有文件,记得是所有文件。使用git 提交到我们开始创建的仓库里面就行了。
提交库文件,可以看这里:
我提交到github 如图:,我是把刚H盘里面生成的全部的文件,提交到了 github上面的 maven 仓库里面,如图
在项目中使用我们上传到github的库文件,
我们github仓库的地址是:
https://github.com/hhhccckkk/maven
那么我们maven库的地址需要修改为:十分重要。这个地址项目中需要使用。
https://raw.githubusercontent.com/hhhccckkk/maven/master/
在我们需要使用这个库的项目中的根目录build.gradle里面加入maven库的地址:就是刚上面这个地址
allprojects {
repositories {
jcenter()
maven {
url 'https://raw.githubusercontent.com/hhhccckkk/maven/master/'
}
}
}
在项目的build.gradle种加入我的创建的库
com.hck.lib.log:hck:1.0
compile 'com.hck.lib.log:hck:1.0'
rebuild下,我们的项目就可以使用我们上传到github的lib库了。
com.hck.lib.log:hck:1.0 这个名字自己随便取,但是必须满足这样的规范xxx:xxx:xxx