Android Studio將AAR包發(fā)布到Maven本地倉庫的流程步驟
在 Android Studio 中將 AAR 包發(fā)布到 Maven 本地倉庫,通常涉及以下幾個步驟,環(huán)境如下:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip classpath 'com.android.tools.build:gradle:8.7.0'
1. 配置 build.gradle.kts(或 build.gradle)
在 library 模塊的 build.gradle.kts(或 build.gradle)中,添加以下 Maven 發(fā)布插件:
plugins {
id 'com.android.library'//打lib包
id 'maven-publish'
}對于 build.gradle(Groovy 版本),可以這樣添加:
apply plugin: 'maven-publish'
2. 配置 publishing 任務
在 build.gradle.kts 文件中,添加以下 publishing 配置:
publishing {
publications {
create<MavenPublication>("release") {
from(components["release"])
groupId = "com.shuaici.lib"
artifactId = "scc"
version = "1.0.0"
}
}
}對于 build.gradle(Groovy),使用:
publishing {
publications {
release(MavenPublication) {
from components.release
groupId = 'com.shuaici.lib'
artifactId = 'scc'
version = '1.0.0'
}
}
}3. 發(fā)布到本地 Maven 倉庫
運行以下代碼:
./gradlew publishToMavenLocal

這將在 ~/.m2/repository/com/yourcompany/library/your-library/1.0.0/ 目錄下生成 AAR 文件。例如我剛才打包的地址為~/.m2/repository/com/shuaici/lib/scc/1.0.0/,這個是隱藏文件夾。
這個地址是可以自定義的,但是不推薦修改。
這里容易遇到問題,沒遇到還好,遇到了那就需要解決一下了。
3.1 Could not find method publications() for arguments...
說明 publications {} 這個部分在 android {} 里面不被識別。
解決方案:移動 publications {} 代碼到 afterEvaluate {} 里
在 com.android.library 插件的 Gradle 7.0+ 版本中,publications {} 不能直接放在 android {} 代碼塊里,需要在 afterEvaluate {} 里定義:
plugins {
id 'com.android.library'
id 'maven-publish'
}
android {
namespace 'com.shuaici.lib'
。。。。。。
}
// 這里用 `afterEvaluate`,避免 `publications {}` 出錯
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release
groupId = 'com.shuaici.lib'
artifactId = 'scc'
version = '1.0.0'
}
}
}
}為什么要用 afterEvaluate?
publications {}需要components.release,但android {}還沒完全加載時,components.release可能為空,導致 Gradle 解析失敗。afterEvaluate {}確保android {}配置完成后再執(zhí)行publications {},避免components.release為空的問題。
3.2 bash: ./gradlew: Permission denied
這表示 gradlew 腳本沒有執(zhí)行權限??梢园凑找韵路椒ń鉀Q:
1. 運行 chmod +x gradlew
2. ./gradlew publishToMavenLocal
3. 如果還是報錯,嘗試使用 sh ./gradlew publishToMavenLocal
3.3 Android Gradle plugin requires Java 17 to run. You are currently using Java 11.
解決方案:
1. 臨時切換 Java 版本 ;
2. 永久修改 Java 版本;
3. 在 gradle.properties 指定 Java 版本:
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-17.0.9.jdk/Contents/Home
如果不清楚自己放的位置,可通過以下方式找到。

4. 使用發(fā)布的 AAR 依賴
如果你想在 另一個項目 中使用這個 AAR,編輯 build.gradle:
repositories {
mavenLocal() // 讓 Gradle 從本地 Maven 倉庫查找依賴
mavenCentral() // 遠程 Maven 倉庫(如果本地找不到,會去這里找)
}
dependencies {
implementation 'com.shuaici.lib:scc:1.0.0' // 依賴本地倉庫發(fā)布的 AAR
}然后你就正常調用SDK中的內容就行了。
以上就是Android Studio將AAR包發(fā)布到Maven本地倉庫的流程步驟的詳細內容,更多關于Android Studio AAR包發(fā)布到Maven的資料請關注腳本之家其它相關文章!
相關文章
Android開發(fā)技巧之在a標簽或TextView控件中單擊鏈接彈出Activity(自定義動作)
a標簽以及TextView自動識別的特殊文本(網址、電話號、Email等),這些都可以通過單擊來觸發(fā)不同的動作;但如果讀者想在單擊鏈接時執(zhí)行任意自定義的動作,那么將要介紹的一定是你想要的了2013-01-01
Android編程實現(xiàn)簡單的UDP Client實例
這篇文章主要介紹了Android編程實現(xiàn)簡單的UDP Client,結合實例形式分析了Android實現(xiàn)UDP Clinet客戶端的實現(xiàn)技巧,需要的朋友可以參考下2016-04-04
Android基于TextView不獲取焦點實現(xiàn)跑馬燈效果
這篇文章主要介紹了Android基于TextView不獲取焦點實現(xiàn)跑馬燈效果,結合實例形式分析了Android基于TextView實現(xiàn)跑馬燈的功能與布局相關技巧,需要的朋友可以參考下2017-02-02

