前言:
最近在項(xiàng)目中使用到Maven本地倉庫,之前用Maven只是用別人的庫做依賴。而對(duì)與上傳本地倉庫或外部倉庫還不是很了解,在學(xué)習(xí)了別人的技術(shù)文章后在這里做一些總結(jié)。
基本描述:
maven的倉庫分兩類:
1、本地倉庫
maven在本地存儲(chǔ)構(gòu)件的地方。
maven本地倉庫的默認(rèn)位置:在用戶的目錄下.m2/repository/的倉庫目錄。
2、遠(yuǎn)程倉庫
兩個(gè) Maven 中央庫:mavenCentral 和 jcenter。
部署在內(nèi)網(wǎng)服務(wù)器的私有倉庫。
Maven在本地倉庫中的對(duì)應(yīng)存儲(chǔ)路徑:
1、groupId唯一標(biāo)識(shí)符:com.android.dzrefresh 對(duì)應(yīng)路徑:com/android/dzrefresh
2、artifactId類似于項(xiàng)目名稱:App 對(duì)應(yīng)路徑:com/android/dzrefresh/App
3、version版本號(hào):1.0.0 對(duì)應(yīng)路徑:com/android/dzrefresh/App/1.0.0
對(duì)應(yīng)得也就是:
compile 'com.android.dzrefresh:App:1.0.0'
指定本地倉庫路徑:
自定義本地路徑:
repositories {
maven { url 'D://Users/user2/.m2/repository' }
}
默認(rèn)本地路徑:
repositories {
mavenLocal()
}
</br>
發(fā)布本地庫流程如下:
一、新建一個(gè)Android項(xiàng)目
在項(xiàng)目下創(chuàng)建一個(gè)Libary(如果直接在Android項(xiàng)目下發(fā)布到本地倉庫會(huì)生成apk包,而lib下生成的是aar包可以作為依賴使用)。
二、配置參數(shù)
在Library也就是剛才創(chuàng)建的AndroidLib下的gradle.build中添加
apply plugin: 'maven'
uploadArchives{
repositories.mavenDeployer{
// 本地倉庫路徑
repository(url:"file://D://Users/user2/.m2/repository/")
// 唯一標(biāo)識(shí)
pom.groupId = "com.android.dzrefresh"
// 項(xiàng)目名稱
pom.artifactId = "App"
// 版本號(hào)
pom.version = "1.0.0"
}
}
也可以通過maven-publish方式發(fā)布
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"
}
}
}
三、發(fā)布到本地倉庫
maven方式命令
gradlew uploadArchives
maven-publish方式
gradlew publishToMavenLocal
四、使用本地庫:
1、在Android項(xiàng)目下的build.gradle文件中配置路徑
repositories {
jcenter()
mavenLocal()
}
2、引用
compile 'com.android.dzrefresh:App:1.0.0'