前言:
最近在项目中使用到Maven本地仓库,之前用Maven只是用别人的库做依赖。而对与上传本地仓库或外部仓库还不是很了解,在学习了别人的技术文章后在这里做一些总结。
基本描述:
maven的仓库分两类:
1、本地仓库
maven在本地存储构件的地方。
maven本地仓库的默认位置:在用户的目录下.m2/repository/的仓库目录。
2、远程仓库
两个 Maven 中央库:mavenCentral 和 jcenter。
部署在内网服务器的私有仓库。
Maven在本地仓库中的对应存储路径:
1、groupId唯一标识符:com.android.dzrefresh 对应路径:com/android/dzrefresh
2、artifactId类似于项目名称:App 对应路径:com/android/dzrefresh/App
3、version版本号:1.0.0 对应路径:com/android/dzrefresh/App/1.0.0
对应得也就是:
compile ‘com.android.dzrefresh:App:1.0.0’
指定本地仓库路径:
自定义本地路径:
repositories {
maven { url 'D://Users/user2/.m2/repository' }
}
默认本地路径:
repositories {
mavenLocal()
}
</br>
发布本地库流程如下:
一、新建一个Android项目
在项目下创建一个Libary(如果直接在Android项目下发布到本地仓库会生成apk包,而lib下生成的是aar包可以作为依赖使用)。
二、配置参数
在Library也就是刚才创建的AndroidLib下的gradle.build中添加
apply plugin: 'maven'
uploadArchives{
repositories.mavenDeployer{
// 本地仓库路径
repository(url:"file://D://Users/user2/.m2/repository/")
// 唯一标识
pom.groupId = "com.android.dzrefresh"
// 项目名称
pom.artifactId = "App"
// 版本号
pom.version = "1.0.0"
}
}
也可以通过maven-publish方式发布
apply plugin: 'maven-publish'
publishing {
publications {
maven(MavenPublication) {
artifact "D://DZRefresh/xxlib/build/outputs/aar/xxlib-debug.aar"
groupId "com.android.dzrefresh"
artifactId "APP"
version "1.0.0"
}
}
}
三、发布到本地仓库
maven方式命令
gradlew uploadArchives
maven-publish方式
gradlew publishToMavenLocal
四、使用本地库:
1、在Android项目下的build.gradle文件中配置路径
repositories {
jcenter()
mavenLocal()
}
2、引用
compile 'com.android.dzrefresh:App:1.0.0'