android 搭建本地maven库
先学习本地maven库搭建,在学习远端maven搭建。
情景
在大型的项目中,多人开发环境下,安全为第一条件下必然会产生以下几个问题:
- 项目越来越大,导致项目依赖越来越多,配置项剧增,最后就是编译时间非常漫长。
- 项目依赖的第三方库,自己拆分的库很多,不利于管理和维护。
- 开发人员太多,项目一大坨,不利于责任的划分和管理。
- 代码无版本控制,规范很重要。
- 代码全部在本地,很容易产生代码泄露,很不安全。(本地maven也是如此)
所以大家熟知的组件化方案就产生了,各种开源方案都有,最终的目的就是实现组件化。但是,组件化方案并不能将代码保护起来,也不能通过版本控制和依赖控制代码。所以maven能帮我们实现这几点。
实现
其实本地的实现很简单,解决studio已经帮我们干了一大半事情了,我们只需要添加一些配置就行了。
- 在
Project
项目下创建upload.gradle
文件,如下:
//引入maven
apply plugin: 'maven'
uploadArchives{//生成仓库的任务
repositories.mavenDeployer{
// 配置本地仓库路径,项目根目录下的repository目录中
repository(url: uri('../repository'))
pom.groupId = "com.hujin.wan.login"// 唯一标识(通常为模块包名,也可以任意)
pom.artifactId = "login" // 项目名称(通常为类库模块名称,也可以任意)
pom.version = "1.0.2" // 版本号
}
}
- 在项目的
build.gradle
下申明本地Macen仓库地址:
allprojects {
repositories {
google()
jcenter()
//申明本地Macen仓库地址
maven {
url 'file:/Users/apppp/AndroidStudioProjects/wan/repository'
}
}
}
- 根据1中
repository
的url
路径所指定的目录,创建repository
目录,这是maven生成的地址
- 在需要打包的
module
的目录下的build.gradle
引入upload.gradle
文件
apply plugin: 'com.android.library'
apply from: rootProject.file('upload.gradle')
.......
-
在右边侧边栏–》Gradle下找到
uploadArchives
task,并执行:
然后会在repository
目录下生成如下文件:
-
然后在主module里面正常依赖使用就行:
implementation 'com.hujin.wan.login:login:1.0.2'
主module代码就可以使用login
module下的代码了
结语
本地maven还是很简单的,后面会说下实现nexus3.+
配置的远端仓库。(nexus3.+才开始看)