前言:
最近在項目中使用到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'