使用Gradle(v 1.7)作为构建工具处理Android库时,我使用了maven插件并配置了任务uploadArchives以发布发行版和调试版lib到本地的maven仓库。

下面的代码工作正常:Gradle和Android:包含多个Maven构件的pom配置出版物

// [...]

apply plugin: 'android-library'

// [...] nothing unusual

/*

* Define name of the apk output file (build/apk/)

*/

android.libraryVariants.all

{

variant ->

def outputName = "MyModule-${android.defaultConfig.versionName}-${variant.baseName}.aar"

variant.outputFile = new File("$buildDir/libs", outputName)

}

/*

* Publish to maven local repo (older style maven plugin)

* Used while android plugin is not fixed regarding maven-publish plugin

*

* type command "gradle uploadArchives" to publish the module into the

* local .m2 repository

*/

apply plugin: 'maven'

android.libraryVariants.all

{

variant ->

// add final apk to the 'archives' configuration

project.artifacts

{

archives variant.outputFile

}

}

def localRepoPath = "file://" + new File(

System.getProperty("user.home"), ".m2/repository").absolutePath

uploadArchives

{

repositories.mavenDeployer

{

repository(url: localRepoPath)

addFilter('debug') { artifact, file ->

artifact.name.contains("debug")

}

addFilter('release') { artifact, file ->

artifact.name.contains("release")

}

pom('debug').groupId = 'com.company'

pom('release').groupId = 'com.company'

pom('debug').artifactId = 'id'

pom('release').artifactId = 'id'

pom('debug').version = android.defaultConfig.versionName + "d"

pom('release').version = android.defaultConfig.versionName

pom.packaging = 'aar'

}

}

uploadArchives.dependsOn(assemble)

然而,当试图重构POM配置:

uploadArchives

{

repositories.mavenDeployer

{

repository(url: localRepoPath)

addFilter('debug') { artifact, file ->

artifact.name.contains("debug")

}

addFilter('release') { artifact, file ->

artifact.name.contains("release")

}

pom.groupId = 'com.company'

pom.artifactId = 'id'

pom('debug').version = android.defaultConfig.versionName + "d"

pom('release').version = android.defaultConfig.versionName

pom.packaging = 'aar'

}

}

的artifactId被扩展为输出文件的名称,并的groupId为根目录的名称;从而给maven回购提供了不好的途径。

我想知道这是为什么,也许如果有一个更清晰的方式来实现我所需要的。

2013-08-23

mklj

+0

在我的项目中,我需要重命名输出'.aar'。因此,我在用于'artifactId'的'build.gradle'中设置了'archivesBaseName'。也许这有帮助。 –

+0

你有想过吗? –

+0

@YuchenZhong不幸的是,这项工作是短期实习的一部分。我不知道谁负责这个项目,因此从那以后如何处理。 –

maven android 多模块,Gradle和Android:包含多个Maven构件的pom配置出版物相关推荐

  1. android下的gradle升级,Android Studio Gradle版本升级简单方法

    Gradle版本升级 先提前把想要升级的gradle版本下载下来 下载地址:https://gradle.org/releases 比如我想要下载Gradle 3.4版本,下载好后得到个zip压缩包 ...

  2. Android studio 使用Gradle发布Android开源项目到JCenter 总结

    1.注册账号 先到https://bintray.com注册一个账号.  这个网站支持 github 账户直接登录的 2.获取  bintray.user  和 bintray.apikey      ...

  3. android.mk 模块编译,通过Android.mk添加一个编译模块到系统中的顺序如下

    ①LOCAL_PATH ②CLEAR_VARS ③LOCAL_SRC_FILES ④LOCAL_CFLAGS(可选) ⑤LOCAL_MODULE ⑥LOCAL_STATIC_LIBRARIES(可选) ...

  4. Android Stadio调试gradle 插件 || Android Stadio 远程调试 || Anroid APT调试

    有时候,自己开发了gralde插件,想调试一下.毕竟打印log 成本太高.效率太低.怎么做呢? 第一种方法: 1.执行gradlew 命令的时候,加上几个参数:-Dorg.gradle.debug=t ...

  5. 【Android 应用开发】 Android 各种版本简介 ( Support 支持库版本 | Android Studio 版本 | Gradle 版本 | jcenter 库版本 )

    初学者遇到 Android Studio, 导入工程后, 会出现各种奇葩错误, 如果管理好各个插件, gradle, SDK, SDK Tools, 各种官方依赖库 的版本, 会将错误大大的减少; 这 ...

  6. android多渠道打包签名配置,Gradle For Android(二) 多渠道打包与签名配置

    <Gradle For Android(二) 多渠道打包与签名配置> 转载请注明来自 傻小孩b(gold.xitu.io/user/57e089-喜欢的能够关注我,不按期总结文章!您的支持 ...

  7. android+final+框架,使用android快速开发框架afinal 开发android应用程序

    首先介绍下afinal开发框架: 1.afinal是android中一个设计小巧的android应用开发框架 2.里面包含了一个orm框架,无需配置任何文件可以对android的sqlite进行增删改 ...

  8. Android 开发使用 Gradle 配置构建库模块的工作方式

    Android 开发过程中,我们不可避免地需要引入其他人的工作成果.减少重复"造轮子"的时间,投入到更有意义的核心任务当中. Android 库模块在结构上与 Android 应用 ...

  9. android在java下建立模块,Android Studio:如何在Android模块中包含Java模块?

    在Android工作室我有一个Android模块,我们称之为MyAndroid.我还有一个Java模块(不是独立的JAR,而是模块中的完整Java项目),我们称之为MyJava.Android Stu ...

最新文章

  1. oracle数据库查询人员和岗位,oracle岗位需求收集
  2. 什么是COM与DCOM
  3. Linux 用户和用户组配置说明
  4. File ipython-input-20-ac8d4b51998e
  5. 查看tensorflow pb模型文件的节点信息
  6. python format函数实例_Python字符串格式化,format格式化函数详细使用
  7. 10次相遇我才知道什么是成熟的爱--转
  8. 蓝桥杯2015初赛试题
  9. Python error: Unable to find vcvarsall.bat
  10. 浙江万里学院计算机专业宿舍,浙江万里学院宿舍条件,宿舍几人间环境好不好(图片)...
  11. 1.常用字符对象方法
  12. 2014/Province_Java_B/2/调和级数
  13. python框架flask_Python开发框架Flask-阿里云开发者社区
  14. CSU 1329: 一行盒子
  15. 关于Ubuntu下apt的一些用法及和yum的比较
  16. 零基础学python-看完这篇,零基础也知道怎么学Python
  17. 京东一面:高并发下,如何保证分布式唯一全局 ID 生成?
  18. Android 最常用的设计模式一 安卓源码分析—单例模式singleInstance
  19. 一款网页游戏外挂开发-数据抓包
  20. Ajax访问接口报错NET::ERR_CERT_REVOKED

热门文章

  1. python 随机padding_python实现PKCS5Padding
  2. 【linux】循序渐进学运维-基础篇-top命令
  3. 强化学习笔记(三)Value Function Approximation
  4. 阿里云主机搭建网站,并使外网可访问到
  5. 计算机视觉方向简介 | 室内场景的结构化重建
  6. 代码(2):聚类图以及PCA图
  7. Linux操作系统的帮助指令详解
  8. 猜数字游戏-学员版本
  9. 关于 Token 过期问题的两种解决方案
  10. docker 搭建本地私有仓库