android 开发时,类库依赖管理一般是拷贝到相应 libs 目录然后配置文件中引用该类库,或者引用 jceneter 中第三方类库等。
前者简单粗暴但是一旦类库有新版本更新,需要重新拷贝一份库到该目录下更新,同时造成整个工程初次check下来时体积偏大。后者可能受限于网络会导致很多类库无法获取导致编译失败等问题。
假如说要是我们能在本机或者局域网服务器搭建并使用 maven 仓库,一来可以解决更新类库靠拷的原始方式,二来也不用担心连不上外网导致获取类库失败。同样可以提高团队开发的效率。
一、maven私服搭建
先在 nexus 官网 下载适合你机器的版本,我这里选择的是 nexus-3.0.1 mac 版本。下载后解压并启动服务,然后进行简单的配置,在这里就不详述了,相关内容请自行查阅。
二、maven私服仓库使用
这里假设你把 nexus 安装在了本机,仓库地址为 http://localhost:8081/repository/test/。如果把 nexus 安装在了局域网服务器,基本类似,只是仓库地址中的 localhost 改为局域网服务器 ip 。
上传
好了,我们现在新建一个项目,让该项目上传到仓库,该怎么做呢?其实很简单,就是在我们的项目的app.gradle中的android节点下添加如下代码:
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://127.0.0.1:8081/repository/test/") {
authentication(userName: "admin", password: "admin123")
}
pom.version = "0.0.2"
pom.artifactId = "testlib"
pom.groupId="com.test"
}
}
}
简单的说明下,
repository:代表是即将上传仓库的地址
authentication:连接仓库的一些属性,用户名和密码
pom:配置仓库的基本信息,version:版本号,artifactId,groupId,则代表的是最后compile的仓库信息
下载引用
前面刚到了如何上传,当然也就少不了如何引用的了
引用的就非常简单了
1、在项目的project的build.gradle文件中添加如下信息:
allprojects {
repositories {
google()
jcenter()
mavenLocal()
}
}
2、在项目的app的build.gradle中添加下面的代码:
allprojects{
repositories {
maven {
url "http://127.0.0.1:8081/repository/test/"
}
}
}
compile "com.test.testlib:0.0.2"
到此为止,我们就能成功的引用本地仓库了。
好了,本文就简单的介绍了如何使用maven搭建私服,以及上传文件和下载使用文件