maven-publish插件的使用笔记

Maven发布插件使用指南 Maven发布插件使用指南 前置 maven发布插件可以发布产物到 Apache Maven 代码库。Android Gradle 插件会为应用或库模块中的每个构建变体工件创建一个组件,您可以使用它来自定义要发布到 Maven 代码库的发布内容。 需要Android Gradle 插件 3.6.0 及更高版本。 Android Gradle 插件 发布内容工件 组件名称 com.android.library AAR components.variant com.android.appl 阅读详情

—START—

一、插件简介
maven-publish是一个Gradle插件,用来实现将本地library发布到Apache Maven仓库。例如:将*.aar、*.jar等library发布到仓库当中,我们可以通过gradle或者maven进行远程依赖使用它。

二、引入插件
在需要用到的模块的build.gradle文件加入如下代码即可。

apply plugin: 'maven-publish'

三、插件使用
引入插件后,我们可以扩展一些我们自定义的属性以及任务。引入插件的模块中,我们可以通过复写publishing节点做自定义操作。

pulishing 内部,我们可以复写两个配置publications 和repositories。
具体配置请参考 Gradle官网介绍

publishing {
    //基本信息配置
    publications {
        maven(MavenPublication) {
            //配置组织结构信息(这里就是配置我们依赖时,所用到的libs结构信息 implementation 'com.xxx.androidlibs:xxx:1.0.0')
            groupId = 'com.xxx.androidlibs'
            artifactId = 'xxx'
            version = '1.0.0'

            //定义输出资源源文件位置
            artifact androidSourcesJar
            artifact("$buildDir/outputs/aar/xxx.aar")

            pom {
                //libs名称
                name = 'xxx'
                //libs官网(一般为GitHub libs 地址)
                url = 'http://www.example.com/library'
                //libs描述(功能介绍)
                description = 'xxx.'

                //开源协议
                licenses {
                    license {
                        name = 'The Apache License, Version 2.0'
                        url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }

                //libs发布者信息
                developers {
                    developer {
                        id = 'xxx'
                        name = 'xxx'
                        email = 'xxx@163.com'
                    }
                }

                //libs源码仓库信息
                scm {
                    connection = 'scm:git:git://example.com/my-library.git'
                    developerConnection = 'scm:git:ssh://example.com/my-library.git'
                    url = 'http://example.com/my-library'
                }
            }
        }
    }

    //maven仓库配置
    repositories {
        mavenLocal()//本地仓库(默认)
        maven {
            //本地maven地址配置(自定义,也可以是一个maven仓库地址)
            url = uri("${rootProject.projectDir}/repo")
        }
    }
}
task androidSourcesJar(type: Jar) {
    archiveClassifier = 'sources'
    from android.sourceSets.main.java.srcDirs
}

artifacts {
    archives androidSourcesJar
}

四、编译命令
执行编译命令,成功后,就会生成我们可以依赖的libs
(implementation ‘com.xxx.androidlibs:xxx:1.0.0’)
当然,你需要先在项目根目录的build.gradle配置maven仓库,即repositories {}所配置的信息。

./gradlew build publish

五、注意事项
artifact("$buildDir/outputs/aar/xxx.aar")
这里加入了这一行,他会把libs的build.gradle 下
dependencies{
api files(‘libs/libddshare.jar’)
}
使用api依赖的第三方库 一起打包到*.aar。

六、完整代码

这里使用afterEvaluate 节点包裹,保证其执行顺序,因为我们打包了 “$buildDir/outputs/aar/xxx.aar” buildDir里的资源。

apply plugin: 'maven-publish'

task androidSourcesJar(type: Jar) {
    archiveClassifier = 'sources'
    from android.sourceSets.main.java.srcDirs
}

artifacts {
    archives androidSourcesJar
}

afterEvaluate {
    publishing {
        //基本信息配置
        publications {
            maven(MavenPublication) {
                //配置组织结构信息(这里就是配置我们依赖时,所用到的libs结构信息 implementation 'com.xxx.androidlibs:xxx:1.0.0')
                groupId = 'com.xxx.androidlibs'
                artifactId = 'xxx'
                version = '1.0.0'

                //定义输出资源源文件位置
                artifact androidSourcesJar
                artifact("$buildDir/outputs/aar/xxx.aar")

                pom {
                    //libs名称
                    name = 'xxx'
                    //libs官网(一般为GitHub libs 地址)
                    url = 'http://www.example.com/library'
                    //libs描述(功能介绍)
                    description = 'xxx.'

                    //开源协议
                    licenses {
                        license {
                            name = 'The Apache License, Version 2.0'
                            url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        }
                    }

                    //libs发布者信息
                    developers {
                        developer {
                            id = 'xxx'
                            name = 'xxx'
                            email = 'xxx@163.com'
                        }
                    }

                    //libs源码仓库信息
                    scm {
                        connection = 'scm:git:git://example.com/my-library.git'
                        developerConnection = 'scm:git:ssh://example.com/my-library.git'
                        url = 'http://example.com/my-library'
                    }
                }
            }
        }

        //maven仓库配置
        repositories {
            mavenLocal()//本地仓库(默认)
            maven {
                //本地maven地址配置(自定义,也可以是一个maven仓库地址)
                url = uri("${rootProject.projectDir}/repo")
            }
        }
    }
}

—END—

【安卓组件化 maven-publish】编译任意Library库至本地maven仓库,自动部署、分模块开发 本文基于Android Studio操作,借助Gradle插件 —— Maven Publish,实现在构建完安卓库或者纯Java库之后,自动将之部署aar或jar至maven仓库,使其成为一个公共模块,供其他项目引用。 首先了解一下其他的多模块开发方法。 第一种:在setting.gradle中定义子模块然后 api Project(':...')),直接引用 。 第二种,部署至远程服务器,如 jitpack.io(傻瓜式操作,还支持gitee) 第一种方法适合小库,优点是改动后可一键构建运行,缺点是 阅读详情

相关推荐

鸿蒙OS开机动画背后的秘密:从代码到视觉的完整解析(附源码分析)

本文深入解析了鸿蒙OS开机动画的系统级实现原理。从bootanimation服务的启动配置、与Render Service的协同,到基于VSync信号的帧率同步与绘制流水线,结合OpenHarmony源码进行了逐行解读。文章揭示了其事件驱动的优雅退出机制,并探讨了视频支持、多屏适配等高级特性与定制化可能,为开发者理解鸿蒙图形子系统提供了硬核技术视角。

sony5的博客 969

maven-publish插件的使用

文章目录maven-publish插件maven-publish的使用引入插件使用插件publicaionsrepositioriespublishToMavenLocal完整的example maven-publish插件 maven-publish是一个Gradle插件,可以我们的编译的输出物(artifacts)发布到Apache Maven仓库当中,例如aar,jar等library发布...

不悔的青春 2万+

STM32驱动电磁阀电路设计:从光耦选型到MOSFET驱动的实战解析

本文深入解析了STM32驱动24V电磁阀的完整电路设计,重点探讨了光耦选型与MOSFET驱动两大核心环节。针对电平转换与电气隔离需求,详细对比了EL357N与TLP2310等光耦在CTR、速度及耐压等关键参数上的差异与应用场景。同时,文章提供了MOSFET关键参数解读、驱动电路优化方案(如推挽驱动)以及完整的PCB布局、电源处理与调试避坑指南,旨在帮助工程师构建稳定可靠的工业控制电路。

weixin_29184371的博客 232

maven-publish插件的使用示例,发布aar到自己maven服务器,在各引用gradle中定义版本号和名称,多个模块共用一个maven发布脚本

maven-publish插件的使用示例,发布aar到自己maven服务器,在各引用gradle中定义版本号和名称,多个模块共用一个maven发布脚本

chuyouyinghe的专栏 1043

【SpringBoot 3.x 第57节】Spring Boot 3 启动快得不讲武德?揭秘 Spring AOT 编译引擎背后的真相!

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1759

【S32K3 MCAL配置】-3.4-CANFD配置-接收特定的“经典CAN/CANFD标准帧”和“经典CAN/CANFD扩展帧”(基于MCAL+FreeRTOS)

【S32K3 MCAL配置】-3.4-CANFD配置-接收特定的“经典CAN/CANFD标准帧”和“经典CAN/CANFD扩展帧”(基于MCAL+FreeRTOS)

「汽车电子助手」的博客 694

Android Studio 搭建和使用Maven仓库

https://www.cnblogs.com/lixiangyang521/p/7760754.html 我们都知道,Android Studio导入jar包非常方便,一行代码搞定 dependencies { compile'com.facebook.fresco:fresco:1.0.1' } 相信大家对该种写法一定不陌生,这里用到的就是Maven(仓库)概念。 定义 ...

kdsde的专栏 2万+

AI智能体面试实战与真题解析: 312+道面试题完整答案 (下篇)

本文覆盖220道基础八股文+92道项目面试题,涵盖Agent架构、RAG、工具调用、记忆系统、多智能体、大模型基础、工程化实践、Prompt工程9大模块,含完整代码实现和模拟面试剧本。

program哲学 295

【Gradle:新一代构建工具】学习笔记 3 Gradle进阶说明 3.24 Gradle中的项目发布

【Gradle:新一代构建工具】学习笔记 3 Gradle进阶说明 3.24 Gradle中的项目发布

代码改变世界 455

从 QQ 聊天到 AI Agent:AstrBot + NapCat 接入 DeepSeek

<think>我们根据要求,根据提供的内容生成≤150字的文章摘要。内容是关于在Windows上使用Docker部署AstrBot+NaPCat,配置DeepSeek,实现QQ AI机器人。摘要需简洁概括主要步骤和结论。注意字数。</think>在Windows 11上通过Docker一键部署AstrBot与NapCat,实现QQ机器人。NapCat扫码登录QQ,AstrBot接入并配置DeepSeek API,完成AI对话。后续可扩展人格、插件及MCP工具,并通过cpolar提供公网管理入口,打造可扩展的

天道酬勤 1万+

14、5G物理层的灵活解决方案:广义频分复用(GFDM)

广义频分复用(GFDM)作为一种高度灵活的5G物理层多载波调制方案,能够满足多样化应用场景的需求,包括高吞吐量的比特管道通信、低功耗高连接数的物联网、超低延迟的触觉互联网以及广覆盖的无线区域网。通过参数化配置,GFDM可适配LTE资源网格,实现与现有系统的兼容与共存。其支持多种解调方式、干扰消除技术、OQAM映射及预编码机制,兼具低带外发射、高频谱效率和强鲁棒性。GFDM还能统一描述OFDM、FBMC、FTN等多种经典与先进波形,成为5G及未来通信系统中极具潜力的通用波形框架。

gold8的专栏 108

【Gradle】maven-publish插件的使用

一、maven-publish介绍   在 Gradle 1.3 中,引入了一种新的发布机制。这种新机制引入了一些新概念和功能,这些功能使 Gradle 发布变得更加强大,现在已成为发布工件的首选选项。 二、maven-publish使用 1、在build.gradle 声明插件 plugins { id 'maven-publish' } 2、使用publishing{}块进行配置 group = 'org.example' version = '1.0' publishing.

chuyouyinghe的专栏 6236

5.1 rocr-runtime libhsakmt event 机制全景—从 Doorbell 到 Signal

本文介绍了ROCm/KFD中的Event机制架构,主要解决GPU异步计算中的反馈问题。Event机制分为三层:硬件层触发事件,内核层管理事件通知,用户态接收处理。事件类型分为三大类:同步类事件(如SIGNAL、QUEUE_EVENT)用于任务完成通知,异常类事件(如MEMORY、HW_EXCEPTION)报告错误,拓扑类事件(如NODECHANGE)处理设备变更。该机制通过共享内存和中断实现高效通信,避免CPU轮询开销。后续文章将深入内核实现、Thunk层封装和多队列完成检测实战。

图形/计算GPU的驱动与虚拟化技术分享园地 1295

Android Maven Publish 插件使用教程

Android Maven Publish 插件使用教程 1. 项目的目录结构及介绍 android-maven-publish/ ├── scripts/ ├── gradle/ │ └── plugin/ ├── sample/ ├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── gra...

gitblog_01034的博客 946

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android 发布 aar 到 maven 仓库(maven 和 maven-publish 插件的区别)

Android 如何发布 aar 到 maven 仓库以及 maven 和 maven-publish 插件的区别。

川峰的博客 4550

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android:发布aar到maven仓库,使用maven-publish插件

maven插件适用于gradle1.0-6.2版本,6.2版本后该插件就被废弃了,推荐使用maven-publish插件。maven-publis插件是在gradle 1.3 版本后开始支持的,使配置更加简洁。

h_bpdwn的博客 2811

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

使用Gradle的maven-publish插件发布快照

我最近与Gradle一起开始了一个新项目 ,并决定直接参加–没有Gradle经验,没有关于Groovy的线索,没有教程,只是继续尝试直到可行。 在我决定使用孵化式maven-publish插件将快照发布到Sonatype的Maven快照存储库之前,这一切进展得令人惊奇,这确实令人信服。 警告:正如我说的那样,我在Groovy和Gradle中都是菜鸟,所以不要相信我所说的话。 我为您写下来...

最佳 Java 编程 2841

Android使用自己封装的maven-publish插件(maven 和 maven-publish),发布到自己或者公司的私有仓库流程

待补充完整 1.仓库搭建 1.私有仓库的搭建nexus 2.私有仓库允许匿名用户登录 3.public仓库添加releases和snapshots 3.如何发布到jcenter 2.插件发布 0,maven 和 publish-maven 的官方用法 1,publish-maven 在主项目中的写法和用法 2.封装publish-maven为自定义的gradle插件 3.将自定义的插件和需要的配置...

intbird的专栏 5107

Gradle Maven Publish 插件教程

Gradle Maven Publish 插件是由 Vanniktech 开发的一个强大的工具,它允许您自动将Java、Kotlin或Android库上传到任何Maven实例,包括Maven中央仓库。这个插件基于Chris Banes的初始实现,并扩展了对Kotlin的支持以及与最新Gradle版本的兼容性。 ## 2. 项目快速启动 要开始使用Gradle Maven Publish插件,请...

gitblog_00386的博客 590

Android:发布aar包到maven仓库; maven插件 和 maven-publish 插件的区别

前言 在日常开发中,不可避免的需要把自己的 library 发布到 maven 仓库中,这样使用起来也更加方便。 发布 aar 包到 maven 仓库,主要是使用 Gradle 提供的插件: maven 插件(旧版),在 Gradle 6.2 之后,就完全被弃用了(增加了 @Deprecated 注解) maven-publish 插件 maven插件,是 Gradle 1.0 的时候提供的用于发布aar/jar包到 Maven 仓库的插件。在 Gradle 1.3 中,引入了一种新的发布插件,即:

h_bpdwn的博客 1961

【亲测免费】 Android Maven Publish 插件使用教程

Android Maven Publish 插件使用教程 项目介绍 android-maven-publish 是一个修改版的 Maven Publish 插件,旨在兼容 Android 库项目(AAR)。该插件允许开发者将 Android 库项目发布到 Maven 仓库中。需要注意的是,自从 Android Gradle 插件(AGP)3.6.0 及以上版本开始,官方已经支持 Maven Pub...

gitblog_00308的博客 1019

Android:发布aar包到maven仓库以及 maven插件 和 maven-publish 插件的区别

前言 在日常开发中,不可避免的需要把自己的 library 发布到 maven 仓库中,这样使用起来也更加方便。 发布 aar 包到 maven 仓库,主要是使用 Gradle 提供的插件: maven 插件(旧版),在 Gradle 6.2 之后,就完全被弃用了(增加了 @Deprecated 注解) maven-publish 插件 maven插件,是 Gradle 1.0 的时候提供的用于发布aar/jar包到 Maven 仓库的插件。在 Gradle 1.3 中,引入了一种新的发布插件,

m0_64365896的博客 2280

Android 使用maven publish插件发布产物(aar)全过程实践

平时开发中会把一些独立的功能模块抽取出来作为sdk,既方便业务接入,又能让其他业务线快速复用。那么我们就需要将sdk打包上传到maven仓库,让业务侧依赖即可。在上传产物到maven仓库之前,我们的知道产物到底是什么。Android Gradle插件根据项目gradle中应用不同的插件类型在编译组装后会生成不同的产物:Android项目的主工程app的gradle配置文件依赖: 因此,在通过编译命令 或后,就会在build/outputs/apk文件下生成产物:如图,apk就是产物(构件)。如果是海外市场,

Misdirection_XG的博客 5338

Android maven-publish使用

一、背景 如果自己开发的库想给别的项目用,需要把自己的库打包后上传到maven,最后每个项目只要依赖maven库就可以集成,maven插件已经过时,官方推荐使用maven-publish插件来实现将我们的代码发布到 Apache Maven仓库的功能。 二、依赖 apply plugin: 'maven-publish' 三、publish Task 所有以下任务都归在名为publishing类型为PublishingExtension的扩展下。 generatePomFileForPubNamePub

分享Android开发知识 2848

Android基于Gradle 7.0+(8.2、8.6)使用maven-publish插件发布aar到maven仓库

maven插件适用于gradle1.0-6.2版本,6.2版本后该插件就被废弃了,推荐使用maven-publish插件。如果你的Android Studio 在配置后没有publishing的task,可以尝试clean下重新build。如果还是不行,不要怀疑配置有问题,mac电脑有时候会出现这种问题,换window电脑马上就有这个task了。下面是我项目中 使用的配置,当然pom的配置你可以继续跟进需要进行删减。选项,我们双击它,就开始执行发布插件的操作了。如果你比较喜欢恋旧,下面的配置也是可以的。

Dream It Possible 3144
上一篇: Android gradle配置打包后 Copy APK到指定路径
下一篇: Android动画工具类
Jusenr
博客等级 码龄10年 13粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jusenr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值