本篇主要讲述我们日常使用中和maven相关的基础概念。
后面两篇主要讲述
一、按照惯例,先普及一下概念,后面会用到
你也可以直接跳过,后面用到的时候,再回来看。
1. maven
Maven全名叫Apache Maven,是一个软件项目管理和项目自动构建的工具。由Apache软件基金会开发。
2. Maven仓库
用来存放maven包的地方。比如我们把自己的library生成了一个jar或者aar,并把jar/aar上传到maven仓库上。之后别人在需要使用的地方,就直接compile你在maven仓库上的包就可以了。也就是我们常用的在Android Studio上使用远程依赖的情况。Maven仓库可以放在本地,也可以放在某个远程服务器上。 可以是私有仓库,也可以是公开的。比如Android Studio上常用到的jcenter和Mavne central。
3. jcenter
jcenter是一个由 bintray.com维护的Maven仓库 。
4. Maven Central
由sonatype.org维护的Maven仓库。
注意:jcenter和maven central都是Maven仓库,只不过由不同的人,在不同的服务器上进行维护而已。
5. POM
Project Object Model。这是一个xml文件,Maven Package就是由POM构成的。
二、Android Studio上使用的Maven仓库中的包
我们在用AS进行开发时,有时需要用到第三方的库,比如gson。这时候你可以选择像Eclipse中那样,导入一个jar包。也可以用的更简单一些,直接在module下build.gradle中的dependencies 加入一行:
compile 'com.google.code.gson:gson:2.3.1'
就可以达到和jar包一样的效果,简单快捷。
这里你应该会问,这是一个下载链接吗?加入了这行AS是去哪里下载的呢?
- 这可以说是一个链接,不过是maven仓库下的链接。但是不能像浏览网页那样在浏览器里直接输入就可以直接浏览或者下载。
- AS去哪里下载取决于你指定了哪个maven仓库。也就是根目录下的build.gradle。
这也就是下面要说的使用步骤:
- 打开根工程下的build.gradle。有下面的这一段代码
allprojects {
repositories {
google()
jcenter()
mavenCentral()
maven {
url 'file:///Users/my-user-name/Documents/Android/repo/'
}
maven {
url 'http://192.168.99.100:8081/content/repositories/releases/'
}
}
}
这个标签的含义就是定义下面所有的module使用下面所列出的仓库。
- 使用稳定版的AS默认是jcenter()。
- 楼主这里用的是预览版,默认是google()和jcenter()。
- 下面两个maven地址分别是本地的maven仓库和远程的maven仓库。
一般情况下不需要使用这么多,一个jcenter基本就够用了。
- 在module下的build.gradle中,加入自己要依赖的maven包地址。如上面的
dependencies {
compile 'com.google.code.gson:gson:2.3.1'
}
这样就可以使用了。这里并没有什么难度,只是帮你先梳理清关系。
那么问题就来了,这里是我用别人的包。如果我也有一个包,也想通过compile直接使用,该怎么办呢?很简单就是把你的包也上传到maven仓库,比如jcenter、maven central,或者搭建一个自己的maven仓库(可是本地也可以是远程的)。下面来对比分析一下。
三、先来看下两个标准的maven库:jcenter和maven central
这两个都是标准的maven仓库。有很多优秀的第三方库在这他们上面,极大的方便了开发者。
不过值得注意的是AS上新建项目,默认的仓库是jcenter,却不是maven central。其实最开始的AS版本默认的是maven central,但是maven central对于开发者太过于繁琐,不友好。所以后期AS团队就把默认的maven仓库换成了jcenter。
下面来简单对比一下这两个库的区别。
- jcenter是maven central的超集。也就是说maven central上有的库,jcenter上都有。但是jcenter上有的库,在maven central上不一定有。
- 上传到jcenter上的库,可以一键发布到maven central上。十分简单。
- jcenter界面更友好。
- jcenter通过CDN发送library,下载更快。
四、认识一下Maven仓库的链接
还是以gson为例,我们指定了jcenter,然后在dependencies中加入
compile 'com.google.code.gson:gson:2.3.1'
就可以了。其中com.google.code.gson:gson:2.3.1称为library的库链接,也成为库地址。由三部分组成:
GROUP_ID:ARTIFACT_ID:VERSION
- GROUP_ID:通常以开发者包名紧跟着library的group名称来命名。如上面的就是com.google.code+gson来命名。
- ARTIFACT_ID:你的library的真实名称。
artifact [‘ɑrtə,fækt] n. 人工制品;手工艺品
- VERSION:就是你library的版本号。
三者之间以半角冒号分隔。
为避免章节过长,本篇就到此。
下一篇:上传library到jcenter和maven central