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

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仓库的资料请关注我们其它相关文章!

(0)

相关推荐

  • Android Studio 多层级 Module 对 aar 引用问题解决方法

    最近碰到这么个恶心的问题 问题:有个arr文件被放到Module A中引用,现在Module B又依赖了Module A,则在编译过程中会发生错误,Module B找不到aar文件.(同时如果又有Module C 依赖了Module B,C也会出同样的问题) 解法: 1.正常给一个module加入aar文件的步骤是: 1.把aar文件放入module文件夹下libs包下 2.然后在项目的build.gradle文件的android节点下加入 3. 1. repositories { flatDi

  • Android 如何实现exclude aar包中的某个jar包

    场景一 要移除的jar包不在aar包中的classes.jar中 直接把aar包里的Jar打包的时候给去掉,就像下面这这样.注意,要使用exclude module这种方式,直接使用exclude group方式没有效果.exclude group的方法适用于exclude JAR包中的文件. implementation(name: '×××××××aar包', ext: 'aar') { exclude module: 'gson' } 场景二 要移除的jar包在aar包中的classes.

  • Android Studio打包jar及aar包的方法

    Android Studio 打包 jar 及 aar 包 创建工程 New -> Module -> Library 在gradle文件头添加 apply plugin: 'com.android.library' 打包模块 在库工程的 build.gradle 中最下方加入如下配置示例: // 删除已存在的 Jar 包 task deleteOldJar(type: Delete) { delete 'build/libs/analytics.jar' } // 创建 Jar 包 task

  • android studio编译jar包或者aar包的方法教程详解

    1. 在原有工程目录右键-> new ->Module->: 2. 选择library: 3. 一路next,最后finish: 4. 在新生成的lib module下的build.gradle中添加如下代码: task makeJar(type: Copy) { //删除存在的 delete 'build/outputs/aar/plugin-release.aar' delete 'libs/' //设置拷贝的文件来源 from('build/outputs/aar/') ////新

  • Android带依赖树的aar是如何生成的(推荐)

    引言 Android Studio默认打出的aar只会包含本工程的源代码,不会携带library依赖的源码:但是我们常用的一些依赖库一般都是带依赖关系的(通过设置 transitive = true ,来透传依赖树).下面讲解下这种带依赖关系的aar是怎么生成的 代码 apply plugin: 'com.android.library' apply plugin: 'maven' apply plugin: 'maven-publish' apply plugin: 'me.vigi.fat-

  • Android Studio中生成aar文件及本地方式使用aar文件的方法

    主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法,具体内容详情如下所示: 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置: *.jar:库/build/intermediates/bundles/debug(release)/classes.jar *.aar:库/build/outputs/aar/libraryname.aar 两者区别: *.jar:只包含了class文件与清单文件,不包含

  • Android apk 项目一键打包并上传到蒲公英的实现方法

    项目一键打包并上传到蒲公英 缘由:测试流程由 打包 找包准备上传 填写更新信息 然后上传 过于复杂 所以想要简化开发 阅读须知:需要读者了解如何在项目里面建立一个空的gradle plugin的过程,否则这篇文章不适合你 开始分析 我想要的效果是精简步骤 比如说输入某个 命令 .\gradlew xxxx 就可以完成我想要的效果 那么首先我们必须得熟知或者完成以下几点: 包路径 打包完成的回调 入口设置参数 设置要传的参数 使用gradle来开发 基于以上几点开始开发 最重要的一点 打包完成的回

  • Android gradle打包并自动上传的方法

    简介 这篇文章主要介绍Android用gradle打包,并且调用python脚本将打包好的apk上传到fir.im供相关人员下载,对于学习gradle 打包和python 几个常用网络库有一定帮助 关键字 :Android Gradle Python fir.im 1 开发前准备 开发前需要下载 AndroidStudio ,gradle(3.3版本),python3.6,Curl,pycurl 准备fir.im账号一个,有账号对应的apitoken,具体fir.im的细节可查看文档fir.im

  • Android Studio新建工程默认在build.gradle中加入maven阿里源的问题

    背景: 在安卓开发时,我们时常会因为gradle时间漫长感到烦恼.通常情况下我们会在build.gradle(Project:MyApplication)中的repositories里添加阿里源,如下图所示. 而每次新建工程依然是google()和jcenter(),而且新建后自动帮你Sync,如果网速不佳则是等了好久才编译好一个新的工程. 解决方案: Android Studio新建工程自动加入maven阿里源 版本:笔者用的是AndroidStudio 3.4,其他版本略同 找到Androi

  • android 上传aar到私有maven服务器的示例

    搞这个东西也是花了蛮长时间,主要还是对gradle中的groovy语言不熟悉所导致的,写下来,以防下次再入坑- 在gradle中新建task 如果你需要将某个module打包成aar,并上传到maven上去,需要在这个module下面的build.gradle文件中添加如下代码: 其中代码: apply plugin: 'maven' 表示我们要应用的插件. MAVEN_LOCAL_PATH表示maven服务器地址,packaging表示需要打包的类型,groupId:artifactId:ve

  • 解决android studio 3.0 加载项目过慢问题--maven仓库选择

    今天用android studio 3.0打开项目时发现一直在谷歌的maven仓库加载 卡到这不动了,看了下maven仓库的配置发现: buildscript { repositories { jcenter() maven { url 'https://maven.google.com' name 'Google' } google() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' // NOTE: Do n

随机推荐