Android打包上传AAR文件到Maven仓库的示例
作者:李大腾腾 发布时间:2023-07-02 15:14:14
标签:Android,打包上传,maven仓库,AAR文件
目录
1、创建 Android 库
2、上传aar包至Maven *
3、其他项目使用
4、QA
1、创建 Android 库
按以下步骤在项目中创建新的库模块:
依次点击 File > New > New Module。
在随即显示的 Create New Module 窗口中,依次点击 Android Library 和 Next。
为您的库命名,并为库中的代码选择一个最低 SDK 版本,然后点击 Finish。
2、上传aar包至Maven *
打开新模块 build.gradle 文件,按如下说明修改:
plugins {
id 'com.android.library' // 库模块
id 'kotlin-android'
id 'maven'// 引入maven plugin
}
def snapshotVersionCode = 101
def snapshotVersion = "1.0.1"
/* 此处省略 android{} 相关配置 */
dependencies {
// 友盟基础组件库(所有友盟业务SDK都依赖基础组件库)
implementation "com.umeng.umsdk:common:9.3.6"
implementation "com.umeng.umsdk:asms:1.2.0"
implementation "com.umeng.umsdk:apm:1.1.1"
}
/*快照版 maven上传*/
uploadArchives {
configuration = configurations.archives
repositories {
mavenDeployer {
repository(url: 'http://nexus.xxxxx.com/repository/maven-snapshots') {
authentication(userName: 'userNameXXXX', password: 'passwordXXXXX')
}
pom.project {
version snapshotVersion + '-SNAPSHOT'
artifactId 'lib-umeng'
groupId 'com.xxxxx'
packaging 'aar'
description 'lib-umeng Initial submission'
}
}
}
}
上传aar 到maven
选择右侧Gradle > Module Name > upload ,双击uploadArchives运行
3、其他项目使用
Project build.gradle添加 maven
allprojects {
repositories {
/* 此处省略了其他配置 */
maven { url 'https://dl.bintray.com/umsdk/release' } // umeng.umsdk相关maven
maven { url 'https://nexus.xxxxx.com/repository/maven-snapshots' } // 刚刚aar上传的maven
}
}
Module 中引用,build.gradle添加如下引用
dependencies {
api ('com.xxxxx:lib-umeng:1.0.1-SNAPSHOT@aar') {// 刚刚生成的aar
implementation "com.umeng.umsdk:common:9.3.6"// 注意,aar implementation的依赖需要重新引用
implementation "com.umeng.umsdk:asms:1.2.0"
implementation "com.umeng.umsdk:apm:1.1.1"
}
}
4、QA
maven上传报错:
Execution failed for task ':lib-umeng:uploadArchives'.
\> Could not publish configuration 'archives'
\> Failed to deploy artifacts: Could not transfer artifact com.xxxxx:lib-umeng:aar:1.0.1 from/to remote (http://nexus.xxxxx.asia/repository/maven-snapshots): Failed to transfer file: http://nexus.xxxxx.asia/repository/maven-snapshots/com/xxxxx/lib-umeng/1.0.1/lib-umeng-1.0.1.aar. Return code is: 400, ReasonPhrase: Repository version policy: SNAPSHOT does not allow version: 1.0.1.
解决:version snapshotVersion + '-SNAPSHOT' 标记:-SNAPSHOT
参考:developer.android.com/studio/proj…
来源:https://juejin.cn/post/6941207210793893895


猜你喜欢
- 一、业务背景有些业务请求,属于耗时操作,需要加锁,防止后续的并发操作,同时对数据库的数据进行操作,需要避免对之前的业务造成影响。二、分析流程
- 前言现在一般很少有用Android原生app发送邮件的需求,但是前段时间公司项目需要在Android app 内部发送邮件,于是就在网上收集
- 我们经常会希望在程序中写入一些配置信息,例如版本号,以及数据库的连接字符串等。你可能知道在WinForm应用程序中可以利用Propertie
- 引言在App日益追求体验的时代,优秀的用户体验往往会使产品脱颖而出。今天我们就来介绍一种简单的滑动ListView来显示或者隐藏ToolBa
- 首先,想要明白hashCode的作用,你必须要先知道Java中的集合。 总的来说,Java中的集合(Collection)有两类,一类是Li
- 本篇文章会向大家实例讲述以下内容:将数组转换为List将List转换为数组将数组转换为Dictionary将Dictionary 转换为数组
- 前言上一节我们搭建起了服务注册中心,为各个服务提供者和消费者提供一个桥梁,这一节我们搭建一个服务提供者,注册到注册中心开源地址:https:
- Java实现Dijkstra输出指定起点到终点的最短路径前言:最近在公司参加了一个比赛,其中涉及的一个问题,可以简化成如是描述:一个二维矩阵
- 前言:本质上来说,CoreCLR 也是 C++ 写的,所以也逃不过用 虚表 来实现多态的玩法, 不过玩法也稍微复杂了一些,希望本篇对大家有帮
- 一、前言高效、合理的使用hibernate-validator校验框架可以提高程序的可读性,以及减少不必要的代码逻辑。接下来会介绍一下常用一
- 大家可能在做app的时候,或多或少需要使用联系人,而根据google提供的api,你需要编写大量的代码,例如首先需要查询数据库,涉及到数据库
- .ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管window
- 逆转交替合并两个链表,即从一个链表的尾指针指向另一个链表的尾指针,依次逆转交替进行合并。下面就通过实例来详细的介绍该逆转交替合并两个链表的思
- 前言最近在开发项目的时候涉及到复杂的动态条件查询,但是mybaits本身不支持if elseif类似的判断但是我们可以间接通过 chose
- 一、简介虚拟函数从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时就静态地编译到了执行文件中,其相对地址在程序运行
- 本文实例讲述了Java对象数组定义与用法。分享给大家供大家参考,具体如下:所谓的对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中
- 最近正式入坑Flutter,首先从环境搭建开始,看了网上好多关于Windows环境搭建的资料,基本都是按官方文档写的,看完的感受是,还不如直
- 下面是 Java 线程相关的热门面试题,你可以用它来好好准备面试。1) 什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程
- 前言本文主要给大家介绍了关于Java中Unsafe类的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧1.Unsaf
- 概述JavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScri