当前位置: 首页 > news >正文

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.lryc.cn/news/544432.html

相关文章:

  • 无服务边缘融合架构:重新定义云原生应用边界
  • 数据库测试
  • Nodejs-逐行读取文件【简易版】
  • 上海市计算机学会竞赛平台2024年5月月赛丙组城市距离之和
  • 穷举vs暴搜vs深搜vs回溯vs剪枝(典型算法思想)—— OJ例题算法解析思路
  • 在ubuntu 24.04.2 通过 Kubeadm 安装 Kubernetes v1.31.6
  • 基于Python socket库构建的基于 P2P 的文件共享系统示例
  • JavaScript 函数重载:灵活应对多场景的编程技巧
  • 通过 PromptTemplate 生成干净的 SQL 查询语句并执行SQL查询语句
  • 用大白话解释缓存Redis +MongoDB是什么有什么用怎么用
  • 计算机毕业设计SpringBoot+Vue.js汽车销售网站(源码+文档+PPT+讲解)
  • 【0010】HTML水平线标签详解
  • FastExcel与Reactor响应式编程深度集成技术解析
  • Netty是如何实现零拷贝的?
  • 【大模型➕知识图谱】大模型结合医疗知识图谱:解锁智能辅助诊疗系统新范式
  • Spring Boot @Component注解介绍
  • MulFS-CAP: Multimodal Fusion-supervisedCross-modal
  • WordPress多语言插件GTranslate
  • wordpress子分类调用父分类名称和链接的3种方法
  • Prometheus + Grafana 监控
  • 初学STM32之简单认识IO口配置(学习笔记)
  • springboot2.7.18升级springboot3.3.0遇到的坑
  • gtest 和 gmock讲解
  • GC垃圾回收介绍及GC算法详解
  • 2020 年英语(一)考研真题 笔记(更新中)
  • 【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
  • playbin之autoplug_factories源码剖析
  • 正浩创新内推:校招、社招EcoFlow社招内推码: FRQU1CY
  • 一文了解:部署 Deepseek 各版本的硬件要求
  • 有没有什么免费的AI工具可以帮忙做简单的ppt?