当前位置: 首页 > 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

相关文章:

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.…...

无服务边缘融合架构:重新定义云原生应用边界

引言:零部署计算的革命突破 Airbnb迁移至LambdaEdge架构后,全球客房详情页渲染延迟降至35ms,冷启动时间缩至50ms以内。Stripe采用无服务边缘计算处理支付事务,成功将动态API响应P99延迟从210ms压缩至19ms。AWS官方基准显示&#…...

数据库测试

TPCH 22条SQL语句分析 - xibuhaohao - 博客园 TPCH模型规范、测试说明及22条语句 - zhjh256 - 博客园 TPC-DS 性能比较:TiDB 与 Impala-PingCAP | 平凯星辰 揭秘Oracle TPC-H性能优化:如何提升数据库查询速度,揭秘实战技巧与挑战 引言 T…...

Nodejs-逐行读取文件【简易版】

“勤奋就是成功之母。”‌ —— 茅以升 目录 逐行读取文件四种方法:Node.js 逐行读取文件的核心方法:同步读取(适用于小文件):异步流式处理(推荐用于大文件):[使用 readline 模块](h…...

上海市计算机学会竞赛平台2024年5月月赛丙组城市距离之和

城市距离之和 内存限制: 256 Mb时间限制: 1000 ms 题目描述 设 (x,y)(x,y) 与 (x′,y′)(x′,y′) 是平面上的两个点的坐标,它们之间的城市距离定义为 ∣x−x′∣∣y−y′∣∣x−x′∣∣y−y′∣ 给定 nn 个点,请计算所有点对之间的城市距离之和。 …...

穷举vs暴搜vs深搜vs回溯vs剪枝(典型算法思想)—— OJ例题算法解析思路

回溯算法的模版 void backtrack(vector<int>& path, vector<int>& choice, ...) {// 满⾜结束条件if (/* 满⾜结束条件 */) {// 将路径添加到结果集中res.push_back(path);return;}// 遍历所有选择for (int i 0; i < choices.size(); i) {// 做出选择…...

在ubuntu 24.04.2 通过 Kubeadm 安装 Kubernetes v1.31.6

文章目录 1. 简介2. 准备3. 配置 containerd4. kubeadm 安装集群5. 安装网络 calico 插件 1. 简介 本指南介绍了如何在 Ubuntu 24.04.2 LTS 上安装和配置 Kubernetes 1.31.6 集群&#xff0c;包括容器运行时 containerd 的安装与配置&#xff0c;以及使用 kubeadm 进行集群初始…...

基于Python socket库构建的基于 P2P 的文件共享系统示例

基于 P2P 的文件共享系统 实现方式&#xff1a; 使用 Python 的socket库构建 P2P 网络&#xff0c;节点之间通过 TCP 或 UDP 协议进行通信。每个节点维护一个文件列表&#xff0c;并向其他节点广播自己拥有的文件信息。当一个节点需要某个文件时&#xff0c;它会向网络中的其…...

JavaScript 函数重载:灵活应对多场景的编程技巧

在 JavaScript 中&#xff0c;函数重载&#xff08;Function Overloading&#xff09;是一个常见的需求。尽管 JavaScript 本身并不支持传统意义上的函数重载&#xff08;即在同一个作用域内定义多个同名函数&#xff0c;根据参数的不同调用不同的函数&#xff09;&#xff0c;…...

通过 PromptTemplate 生成干净的 SQL 查询语句并执行SQL查询语句

问题描述 在使用 LangChain 和 Llama 模型生成 SQL 查询时&#xff0c;遇到了 sqlite3.OperationalError 错误。错误信息如下&#xff1a; OperationalError: (sqlite3.OperationalError) near "sql SELECT Name FROM MediaType LIMIT 5; ": syntax error [SQL: …...

用大白话解释缓存Redis +MongoDB是什么有什么用怎么用

Redis和MongoDB是什么&#xff1f; Redis&#xff1a;像你家的“小冰箱”&#xff0c;专门存高频使用的食物&#xff08;数据&#xff09;。它是基于内存的键值数据库&#xff0c;读写速度极快&#xff08;每秒超10万次操作&#xff09;。比如你每次打开手机App&#xff0c;用…...

计算机毕业设计SpringBoot+Vue.js汽车销售网站(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

【0010】HTML水平线标签详解

如果你觉得我的文章写的不错&#xff0c;请关注我哟&#xff0c;请点赞、评论&#xff0c;收藏此文章&#xff0c;谢谢&#xff01; 本文内容体系结构如下&#xff1a; 一、水平线标签概述 在HTML中&#xff0c;<hr>标签用于在网页上插入一条水平线&#xff0c;其主要…...

FastExcel与Reactor响应式编程深度集成技术解析

一、技术融合背景与核心价值 在2025年企业级应用开发中&#xff0c;大规模异步Excel处理与响应式系统架构的结合已成为技术刚需。FastExcel与Reactor的整合方案&#xff0c;通过以下技术协同实现突破性性能&#xff1a; 内存效率革命&#xff1a;FastExcel的流式字节操作与Re…...

Netty是如何实现零拷贝的?

大家好&#xff0c;我是锋哥。今天分享关于【Netty是如何实现零拷贝的&#xff1f;】面试题。希望对大家有帮助&#xff1b; Netty是如何实现零拷贝的&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Netty是一个高性能的Java网络应用框架&#xff0c;它…...

【大模型➕知识图谱】大模型结合医疗知识图谱:解锁智能辅助诊疗系统新范式

【大模型➕知识图谱】大模型结合医疗知识图谱:解锁智能辅助诊疗系统新范式 大模型结合医疗知识图谱:解锁智能辅助诊疗系统新范式引言一、系统架构1.1 系统架构图1.2 架构模块说明1.2.1 用户输入1.2.2 大模型(语义理解与意图识别)1.2.3 Agent(问题解析与任务分配)1.2.4 问…...

Spring Boot @Component注解介绍

Component 是 Spring 中的一个核心注解&#xff0c;用于声明一个类为 Spring 管理的组件&#xff08;Bean&#xff09;。它是一个通用的注解&#xff0c;可以用于任何层次的类&#xff08;如服务层、控制器层、持久层等&#xff09;。通过 Component 注解&#xff0c;Spring 会…...

MulFS-CAP: Multimodal Fusion-supervisedCross-modal

一种用于无注册红外-可见图像融合的单阶段框架。与传统的两阶段方法不同&#xff0c;MulFS-CAP结合了隐式注册和融合&#xff0c;简化了处理流程并增强了实用性。该方法使用共享的浅层特征编码器&#xff0c;同时进行特征对齐和图像融合。通过引入可学习的模态字典&#xff0c;…...

WordPress多语言插件GTranslate

GTranslate是一个免费的WordPress多语言插件&#xff0c;它允许您将网站内容翻译成多种语言。这个插件提供了一个简单易用的界面&#xff0c;让您可以在WordPress后台直接进行翻译操作。以下是GTranslate插件的一些主要特点&#xff1a; 免费使用&#xff1a;GTranslate插件完…...

wordpress子分类调用父分类名称和链接的3种方法

专为导航而生&#xff0c;在wordpress模板制作过程中常常会在做breadcrumbs导航时会用到&#xff0c;子分类调用父分类的名称和链接&#xff0c;下面这段简洁的代码&#xff0c;可以完美解决这个问题。 <?php echo get_category_parents( $cat, true, &raquo; ); ?…...

Android性能优化深度解析:从理论到实践

在Android开发领域,性能优化是确保应用流畅运行和用户体验的关键。作为一名安卓开发工程师,掌握性能优化技术不仅能提升应用质量,还能在面试和实际工作中脱颖而出。本文将以性能优化为核心领域,深入探讨其理论、工具和实践方法,并提供代码示例和常见面试问题及答案。文章内…...

量子计算误差缓解技术:从原理到实践

1. 量子计算误差缓解技术概述量子计算正从实验室走向实际应用&#xff0c;但噪声问题始终是制约其发展的关键瓶颈。在NISQ&#xff08;噪声中等规模量子&#xff09;时代&#xff0c;量子比特数量虽已突破百位大关&#xff0c;但错误率仍居高不下。误差缓解技术&#xff08;Err…...

从集合运算到代码:一文搞懂Jaccard系数,附Python/NumPy/Pandas三种实现方法对比

从集合运算到代码&#xff1a;一文搞懂Jaccard系数&#xff0c;附Python/NumPy/Pandas三种实现方法对比在数据挖掘和机器学习领域&#xff0c;衡量两个集合的相似度是一项基础而重要的任务。Jaccard相似系数作为一种简单直观的度量方法&#xff0c;广泛应用于推荐系统、文本挖掘…...

DeepSeek总结的clickhousectl v0.2.0: Postgres, ClickPipes 等更多功能

来源&#xff1a;https://clickhouse.com/blog/clickhousectl-v0-2-0-postgres-clickpipes-more clickhousectl v0.2.0: Postgres, ClickPipes 等更多功能 作者: Al Brown 日期: 2026年5月20日 阅读时间: 7分钟 我们发布了 clickhousectl v0.2.0。此版本增加了对 Postgres&…...

DeepSeek数据脱敏与联邦学习实战方案(2024最新版零信任架构白皮书)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek数据隐私保护概述 DeepSeek系列大模型在训练与推理过程中严格遵循数据最小化、目的限定及用户可控原则&#xff0c;其隐私保护机制贯穿数据采集、预处理、模型训练、服务部署与日志管理全生命周…...

混合量子-经典机器学习在HPC环境下的性能调优与实战

1. 项目概述与核心价值在人工智能和计算科学的前沿&#xff0c;我们正站在一个关键的十字路口。一方面&#xff0c;以卷积神经网络为代表的经典机器学习模型&#xff0c;在处理图像识别、自然语言理解等任务上取得了巨大成功&#xff0c;但其对计算资源的需求正以惊人的速度膨胀…...

将 Hermes Agent 工具链接入 Taotoken 的配置要点解析

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 将 Hermes Agent 工具链接入 Taotoken 的配置要点解析 Hermes Agent 是一款功能强大的 AI 智能体开发框架&#xff0c;支持通过自定…...

AI Agent在DevOps中的应用:自主监控、根因分析与故障修复

AI Agent在DevOps中的应用&#xff1a;自主监控、根因分析与故障修复 引言 痛点引入&#xff1a;现代DevOps团队的“三座大山” 想象一个场景&#xff1a;周五晚上23:58&#xff0c;你正准备关掉电脑奔赴周末的露营烧烤局&#xff0c;手机突然弹出数十条Prometheus、ELK Sta…...

Taotoken用量看板如何帮助团队分析并优化大模型API支出

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken用量看板如何帮助团队分析并优化大模型API支出 对于团队技术负责人或项目经理而言&#xff0c;管理大模型API支出并非易事…...

DeepSeek限流配置全链路解析(从Token Bucket到Sentinel熔断的7层校验机制)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek限流策略配置全景概览 DeepSeek模型服务在高并发场景下需依赖精细化的限流机制保障系统稳定性与资源公平性。限流策略不仅作用于API网关层&#xff0c;还贯穿模型推理服务、缓存中间件及后端调…...