Android Studio 新版本Gradle發布本地Maven倉庫示例

發布代碼到JitPack示例:https://blog.csdn.net/loutengyuan/article/details/145938967

以下是基于 Android Studio 24.2.2(Gradle 8.10.2 + AGP 8.8.0 + JDK17) 的本地 Maven 倉庫發布示例,包含aar和jar的不同配置:


1. 配置 build.gradle 文件

(1) 項目級 build.gradle
// 項目根目錄 build.gradle
buildscript {repositories {maven { url 'https://maven.aliyun.com/repository/public' }google()mavenCentral()}dependencies {classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.9.10" // 如果要編譯javadoc,需要添加這個依賴}
}
(2) 項目級 gradle.properties(非必須)
// 項目根目錄 gradle.properties 中添加JDK17配置(也可以設置電腦的環境變量未JDK17)
org.gradle.java.home=C\:\\Program Files\\Java\\jdk-17
(3) aar模塊 build.gradle
// aar模塊 build.gradle
plugins {alias(libs.plugins.android.library)alias(libs.plugins.maven.publish)
}android {namespace 'com.lois.aarlib'compileSdk 35defaultConfig {minSdk 21testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"consumerProguardFiles "consumer-rules.pro"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_17targetCompatibility JavaVersion.VERSION_17}// 以下是本地構建配置,用于發布到maven倉庫,顯式聲明發布配置(關鍵修復)publishing {singleVariant("release") {// 顯式聲明發布配置withSourcesJar()// doc發布需要添加"org.jetbrains.dokka:dokka-gradle-plugin:1.9.10"插件withJavadocJar()}}
}dependencies {implementation libs.appcompatimplementation libs.materialtestImplementation libs.junitandroidTestImplementation libs.ext.junitandroidTestImplementation libs.espresso.core}// 發布配置
afterEvaluate {try {publishing {publications {release(MavenPublication) { // 定義發布名稱(如 release 或 debug)from components.release  // Android庫使用release變體groupId = "com.github.luotengyuan.MavenTest" // 組 IDartifactId = "AarLib" // 項目名稱version = "1.0.0" // 版本號}}repositories {maven {url = uri("${rootProject.projectDir}/repository") // 動態路徑配置}}}} catch (Exception e) {println "發布配置失敗: ${e.message}" // 添加錯誤處理}
}
(4) jar模塊 build.gradle
// jar模塊 build.gradle
plugins {id 'java-library'alias(libs.plugins.maven.publish)
}java {sourceCompatibility JavaVersion.VERSION_17targetCompatibility JavaVersion.VERSION_17
}// 發布配置
afterEvaluate {try {publishing {publications {release(MavenPublication) { // 定義發布名稱(如 release 或 debug)from components.java  // Java庫使用groupId = "com.github.luotengyuan.MavenTest" // 組 IDartifactId = "JarLib" // 項目名稱version = "1.0.0" // 版本號artifact sourcesJar // 添加源碼發布配置artifact docJar // 添加源碼發布配置}}repositories {maven {url = uri("${rootProject.projectDir}/repository") // 動態路徑配置}}}} catch (Exception e) {println "發布配置失敗: ${e.message}" // 添加錯誤處理}
}tasks.register('sourcesJar', Jar) {from sourceSets.main.allJavaarchiveClassifier = 'sources'
}tasks.register('docJar', Jar) {dependsOn javadoc // 確保先執行javadoc任務from javadoc.destinationDir // 使用javadoc生成的文檔目錄archiveClassifier = 'javadoc' // 修改分類器標識
}

2. 發布到本地 Maven 倉庫

在終端中執行以下命令,將 AAR 文件發布到本地倉庫:

./gradlew clean  
./gradlew publish
發布后的文件結構

發布后再項目根目錄多了一個 repository 文件夾,這就是本地倉庫地址,結構如下:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3. 在其他項目中引用本地倉庫

在需要引用該庫的項目中,配置 build.gradle 文件:

(1) 添加本地倉庫路徑

在 setting.gradle 上添加倉庫地址

dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {maven {url "file://E:/AS24WorkSpace/MavenLocalTest/repository"}google()mavenCentral()}
}
(2) 添加依賴
dependencies {implementation 'com.github.luotengyuan.MavenTest:AarLib:1.0.0'implementation 'com.github.luotengyuan.MavenTest:JarLib:1.0.0'
}

示例代碼:https://github.com/luotengyuan/MavenLocalTest

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70906.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70906.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70906.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python量化交易——金融數據管理最佳實踐——qteasy創建本地數據源

文章目錄 qteasy金融歷史數據管理總體介紹本地數據源——DataSource對象默認數據源查看數據表查看數據源的整體信息最重要的數據表其他的數據表 從數據表中獲取數據向數據表中添加數據刪除數據表 —— 請盡量小心,刪除后無法恢復!!總結 qteas…

Android中使用Robolectric測試點擊事件(不需要手機)

文章目錄 一、前言二、簡單示例三、參考文檔 一、前言 Robolectric 是一個由 Google 維護的開源 Android 測試框架,它允許你以 Android 運行時環境運行單元測試。 Robolectric 提供了一個模擬 Android 運行時環境,允許你測試你的代碼是否正確地使用 And…

Spring Boot 接口 JSON 序列化優化:忽略 Null 值的九種解決方案詳解

一、針對特定接口null的處理: 方法一:使用 JsonInclude 注解 1.1 類級別:在接口返回的 ?DTO 類或字段? 上添加 JsonInclude 注解,強制忽略 null 值: 類級別:所有字段為 null 時不返回 JsonInclude(Js…

ds回答-開源llm應用開發平臺

以下是幾個著名的開源 LLM 應用開發平臺,涵蓋不同場景和技術特點: 1. Dify 特點:低代碼 / 無代碼開發、支持 RAG 檢索、Agent 智能體、模型管理、LLMOps 全流程優化。核心功能:可視化工作流編排、數百種模型兼容(如 GP…

LDR6020 PD3.1 協議芯片在特定設備中的應用

在電子設備互聯互通的時代,芯片技術成為提升設備性能與功能的關鍵驅動力。LDR6020 PD3.1 協議芯片以其出色的性能,在 TYPE-C 臺式顯示器 / 便攜顯示器、一拖二快充線以及手機電腦轉接器等設備中展現出獨特價值,為用戶帶來更便捷、高效的使用體…

wzl-django學習

####################################################總的urls.py from django.contrib import admin from django.urls import path,include, re_path from django.views.static import serve from django.conf import settings from drf_yasg import openapi from drf_yas…

python -ssh學習

def exe_sshcmd(ip,username,userpswd,port,cmd): """ 功能:SSH登錄到指定設備,并執行對應的命令 入參:前四項為ssh登錄shell的ip和port,具備管理員權限的用戶名和密碼, cmd可以…

PDF處理控件Aspose.PDF教程:使用 Python 將 PDF 轉換為 TIFF

TIFF文件是高質量圖像的首選。它們廣泛用于印刷、存檔和圖形設計。企業通常需要轉換PDF文檔以獲得更好的兼容性。了解如何以編程方式執行此轉換可以節省時間和資源。在這篇教程中,我們將探討如何使用 Python 將 PDF 轉換為 TIFF。 本文涵蓋以下主題: P…

服務器IPMI用戶名、密碼批量檢查

背景 大規模服務器部署的時候,少不了較多的網管和監測平臺,這些平臺會去監控服務器的性能、硬件等指標參數,為了便于管理和控制,則需要給服務器IPMI帶外管理添加較多的用戶,這就需要對較多的服務器檢查所對應的IPMI用…

< 自用文兒 > Gobuster 暴力掃描工具與 SecLists 安全測試詞表集合

Ethice 道德問題 GFW 的保護下,很多的設備操作系統是停留在更老的版本,應用軟件也是,因此很多的漏洞沒有被修復。通訊沒有使用加密,例如網頁沒有使用 HTTPS 網站很多。幾乎是半裸的在網絡上等著被食。 不做惡是下限。 環境&…

【Cadence射頻仿真學習筆記】2.4GHz低噪放LNA仿真設計

課程分為3個部分, 一、LNA結構與噪聲優化方法 噪聲優化的方法是:限定功耗的噪聲和功率同時匹配噪聲匹配和功率匹配一般不會同時達到, 對于PCSNIM結構的噪聲分析,我們只需要了解與哪些參數有關優化思路是:1.信號源阻抗…

【洛谷入門賽】B4042 順序結構 202410 場

題意 給你一個變量 a a a:小 Y 會讓 a a a 先加 5 5 5 再把它們的和乘 3 3 3 最后輸出;小 L 會讓 a a a 先乘 3 3 3 再加 5 5 5 最后輸出。 要求出小 Y 和小 L 分別會輸出什么東西。 思路 這道題按照題目意思模擬就可以了,重點是考…

Android13修改多媒體默認音量

干就完了! 設置音量為最大音量,修改如下: /framework/base/media/java/android/media/AudioSystem.java/** hide */public static int[] DEFAULT_STREAM_VOLUME new int[] {4, // STREAM_VOICE_CALL7, // STREAM_SYSTEM5, // STREAM_RING-5, // STREAM_MUSIC15, // STREAM…

【Azure 架構師學習筆記】- Azure Databricks (13) -- 搭建Medallion Architecture part 1

本文屬于【Azure 架構師學習筆記】系列。 本文屬于【Azure Databricks】系列。 接上文 【Azure 架構師學習筆記】- Azure Databricks (12) – Medallion Architecture簡介 前言 上文已經介紹了關于Medallion的知識,本文開始用ADB 來實現, 但是基于內容較…

社交APP如何打造高粘性興趣社群

想要打造一款成功的社交 APP 興趣社群,關鍵在于充分激發用戶的主動分享意愿,同時構建起深度互動機制。與其在一開始就將大量資源投入到廣告宣傳中,倒不如把精力集中在深度挖掘和精心維護首批核心用戶上。例如,可以嘗試設計在線測試…

【操作系統】同步與互斥

同步與互斥 一、同步與互斥的概念1.1 同步與異步1.2 進程互斥 二、進程互斥的實現2.1 軟件實現2.1.1 單標志法2.1.2 雙標志先檢查法2.1.3 雙標志后檢查法2.1.4 Peterson法 2.2 硬件實現2.2.1 中斷指令2.2.2 TestAndSet指令2.2.3 Swap指令 三、互斥鎖四、信號量機制4.1 整型信號…

C++ 正則表達式分組捕獲入門指南

在 C 中,正則表達式(regex)是一種用于匹配字符串模式的強大工具。正則表達式不僅能幫助你查找符合特定模式的字符,還能捕獲匹配的子字符串(即分組捕獲)。這篇文章將介紹 C 正則表達式中的分組捕獲機制&…

使用Docker方式一鍵部署MySQL和Redis數據庫詳解

一、前言 數據庫是現代應用開發中不可或缺的一部分,MySQL和Redis作為兩種廣泛使用的數據庫系統,分別用于關系型數據庫和鍵值存儲。本文旨在通過Docker和Docker Compose的方式,提供一個簡潔明了的一鍵部署方案,確保數據庫服務的穩…

性能附錄:如何計算并發用戶數(摘自高樓老師《性能30講》)

高樓老師《性能30講》: 性能測試實戰30講-極客時間 感興趣的同學可以去讀一下,個人感覺寫的非常好 目錄 什么是并發? 在線用戶數、并發用戶數怎么計算 總結 什么是并發? 我們假設上圖中的這些小人是嚴格按照這個邏輯到達系統的,那顯然,…

基于yolov8的糖尿病視網膜病變嚴重程度檢測系統python源碼+pytorch模型+評估指標曲線+精美GUI界面

【算法介紹】 基于YOLOv8的糖尿病視網膜病變嚴重程度檢測系統 基于YOLOv8的糖尿病視網膜病變嚴重程度檢測系統是一款利用深度學習技術,專為糖尿病視網膜病變早期診斷設計的智能輔助工具。該系統采用YOLOv8目標檢測模型,結合經過標注和處理的醫學影像數…