热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

Android打包上传AAR文件到Maven仓库的示例

这篇文章主要介绍了Android打包上传AAR文件到Maven仓库的示例,帮助大家更好的理解和学习使用Android开发,感兴趣的朋友可以了解下

1、创建 Android 库

按以下步骤在项目中创建新的库模块:

  1. 依次点击 File > New > New Module。
  2. 在随即显示的 Create New Module 窗口中,依次点击 Android Library 和 Next。
  3. 为您的库命名,并为库中的代码选择一个最低 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…

以上就是Android打包上传AAR文件到Maven仓库的示例的详细内容,更多关于Android打包上传文件到Maven仓库的资料请关注其它相关文章!


推荐阅读
  • Vue 2 中解决页面刷新和按钮跳转导致导航栏样式失效的问题
    本文介绍了如何通过配置路由的 meta 字段,确保 Vue 2 项目中的导航栏在页面刷新或内部按钮跳转时,始终保持正确的 active 样式。具体实现方法包括设置路由的 meta 属性,并在 HTML 模板中动态绑定类名。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了如何使用ActionScript 3.0 (AS3) 连接并操作MySQL数据库。通过具体的代码示例和步骤说明,帮助开发者理解并实现这一过程。 ... [详细]
  • 在即将迎来26岁生日之际,作者的人生陷入了低谷。经过近三年的硕士学习后,最终决定退学,并且面临没有工作经验的困境。尽管如此,作者依然坚定地选择为自己的人生负责。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 本文介绍了一种根据用户选择动态切换屏幕界面的方法,通过定义不同的选择块(Selection Block),实现灵活的用户交互体验。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
author-avatar
横着走觉察生活_915
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有