背景
Android有時(shí)候項(xiàng)目當(dāng)中用到第三方的時(shí)候恃疯,可能通過maven倉庫引入或者通過aar包引入;aar包還好,可以直接放到項(xiàng)目里虎谢,但有時(shí)候也可能比較麻煩,假如多個(gè)項(xiàng)目用到同個(gè)aar包低缩,還需要將aar包搬進(jìn)多個(gè)項(xiàng)目中進(jìn)行引用嘉冒;而通過maven倉庫引用則沒這個(gè)煩惱曹货,但有個(gè)問題,假如用到了國外的maven讳推,同時(shí)國外的maven被強(qiáng)顶籽、國內(nèi)又沒有相關(guān)代理那怎么辦,只能想辦法下載原有maven倉庫中的aar包银觅,此時(shí)的問題又回到了多個(gè)項(xiàng)目引用aar包的麻煩事
正文
新建一個(gè)gradle礼饱,比如叫xxxaar_publish.gradle,其內(nèi)容如下:
apply plugin:'maven-publish'
publishing {
repositories {
maven {
//提交到遠(yuǎn)程服務(wù)器:
credentials {
//maven用戶名
username mavenUn
//maven密碼
password mavenPwd
}
//maven地址
url mavenUrl
}
}
publications {
common(MavenPublication){
artifact('xxxxx.aar'){
groupId 'com.yyyyy'
artifactId 'zzzz'
version '1.0.0'
}
}
}
}
寫好xxxaar_publish.gradle的內(nèi)容之后究驴,就在項(xiàng)目目錄下的build.gradle文件中引用
apply from: 'xxxaar_publish.gradle'
Sync now之后镊绪,可以看到Gradle列表當(dāng)中有所改變
點(diǎn)擊publish或者publishCommonPublicationToMavenRepository后就可上傳到maven倉庫上
補(bǔ)充
- 萬一想上傳到maven倉庫上的aar不止一個(gè)怎么辦?
新建一個(gè)如xxx2aar_publish.gradle的文件洒忧,內(nèi)容和xxxaar_publish.gradle類似蝴韭,只不過artifact、groupId熙侍、artifactId和version都得改成另外的一個(gè)aar的相關(guān)信息榄鉴;另外需要在build.gradle文件中添加代碼:
apply from: 'xxx2aar_publish.gradle'
Sync now之后在Gradle列表中多出一個(gè)publishCommonPublicationToMaven2Repository
- MavenPublication這個(gè)類中支持的寫法不止以上一種,還可以寫成
publications {
common(MavenPublication){
groupId 'com.yyyyy'
artifactId 'zzzz'
version '1.0.0'
artifact 'xxxxx.aar'
}
}
更多的可參考MavenPublication這個(gè)類
- 如果需要同時(shí)傳多個(gè)aar蛉抓,就需要對(duì)publications做下改動(dòng)庆尘,其中以上內(nèi)容中的common,其實(shí)可看作一個(gè)key值巷送,可隨意命名驶忌,若要同時(shí)上傳多個(gè),可寫成如下:
publications {
xxx1(MavenPublication) {
artifact('xxx1.aar') {
groupId 'com.yyyy'
artifactId 'zzzz1'
version '1.0.0'
}
}
xxx2(MavenPublication) {
artifact('xxx2.aar') {
groupId 'com.yyyy'
artifactId 'zzzz2'
version '1.0.0'
}
}
}