Java引入依赖aar,如何将JAR依赖项包含到AAR库中

摘要:

我有一个依赖于JAR文件的AAR文件,当我构建AAR项目时,它不包含JAR代码。

细节:

我有一个Java SDK库项目,其中包含我们用于Java

Web项目的代码,此类库是使用Gradle内部Nexus服务器(如JAR)创建的,并驻留在内部。

目的是通过一个AAR库提供此JAR库的“

Android配置”版本,多个Android应用程序可以使用该版本,并最大程度地减少了实现它的工作量(和样板代码)。此AAR文件也已上传到nexus服务器,供Android应用程序项目使用。

我的AAR项目包括我的Java SDK库(JAR)的gradle依赖关系,但是在构建时,AAR不包含它的任何类。

码:

这是Java SDK项目的gradle文件:

apply plugin: 'java'

//noinspection GroovyUnusedAssignment

sourceCompatibility = 1.7

version = '1.1.1'

repositories {

mavenCentral()

}

jar {

from {

configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }

}

}

dependencies {

testCompile group: 'junit', name: 'junit', version: '4.11'

testCompile 'org.apache.directory.studio:org.apache.commons.io:2.4'

compile 'org.springframework:spring-web:3.1.1.RELEASE'

compile 'com.google.code.gson:gson:2.3'

}

这是我的AAR项目的gradle文件,请注意,我已从其中将Maven存储库声明删除到了我的nexus服务器。我想就这个问题而言应该没关系。

apply plugin: 'com.android.library'

android {

compileSdkVersion 23

buildToolsVersion "23.0.1"

defaultConfig {

minSdkVersion 16

targetSdkVersion 23

versionCode 1

versionName "2.2.2"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

lintOptions {

abortOnError false

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

testCompile 'junit:junit:4.12'

compile 'com.android.support:appcompat-v7:23.1.0'

compile ('com.mycompany:javasdk:1.1.1')

}

这是我的Android项目的gradle文件,再次删除了nexus服务器引用:

apply plugin: 'com.android.application'

android {

compileSdkVersion 23

buildToolsVersion "23.0.1"

defaultConfig {

applicationId "com.mycompany.application1"

minSdkVersion 16

targetSdkVersion 23

versionCode 1

versionName "1.0"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

testCompile 'junit:junit:4.12'

compile 'com.android.support:appcompat-v7:23.1.0'

compile ('com.mycompany:androidsdk:2.2.2@aar')

}

注意:

我最初通过在AAR项目的lib目录中添加JAR解决了该问题,但这是不希望的。这使得拥有一个nexus服务器毫无用处。最好在AAR项目的gradle文件中修改JAR的版本号,然后在编译时自动进行更新。

注意2:

我尝试transitive=true在Android项目中添加我的AAR依赖项,但是它没有解决任何问题,真正的问题是,在构建AAR项目时,JAR项目代码没有被捆绑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php+使用go编译,golang如何编译

Go语言中使用 go build 命令主要用于编译代码。在包的编译过程中,若有必要,会同时编译与之相关联的包。go build 有很多种编译方法,如无参数编译、文件列表编译、指定包编译等,使用这些方法都可以输出可执行文件。go build 无参数…

php document.getel,javascript 密码强弱度检测万能插件_javascript技巧

网页密码强弱度检测请输入密码弱中强所需JS下载//checkpwd.js////*Author Netcent Aquany//*function GEId(sID){try{return document.getElementById(sID)}catch(e){};}function GetEl(szN){try{return document.getElementsByName(szN)[0]}catch(e){};}function GetElCol(szN…

session丢失php,PHP Session丢失无效问题总结

前两天玩了一下云边的轻博客,觉得东西比较小巧,自己也想弄个东西,就直接放到服务器里装了,结果啊,$_SESSION丢失了好几天~情况描述:$_SESSION只能在当前的访问里有效,第二次请求就像之前执行过一样,$_SESSION里的内容会没了,就一个array();下面是我对这个问题的查找…

转码java,java转码

媒体处理 MPC媒体处理(Media Processing Center)为海量多媒体数据提供经济、高效、弹性的转码和音视频处理服务,支持丰富的转码格式,适合在PC、TV以及移动终端上播放,匹配多种商业场景媒体处理媒体处理(Media Processing Center)为海量多媒体…

archives_do.php,织梦后台文章管理中增加批量添加tag标签功能

需求背景: 之前发布了不少文章,后来发现之前的这些文章当时发布时都没有添加tag标签,然而现在需要都添加上tag标签,然而这个在默认的织梦后台是没办法批量实现的,只能一篇篇文章去修改。思考: 织梦原本的文…

php ioc容器,PHP 在Swoole中使用双IoC容器实现无污染的依赖注入

容器(container)技术(可以理解为全局的工厂方法), 已经是现代项目的标配. 基于容器, 可以进一步实现控制反转, 依赖注入. Laravel 的巨大成功就是构建在它非常强大的IoC容器 illuminate/container 基础上的. 而 PSR-11 定义了标准的 container , 让更多的 PHP 项目依赖容器实现…

oracle19c监听服务启动失败,Oracle19c安装(有失败成功记录)

Oracle19c安装(有失败成功记录)失败过程失败安装设置 (图为安装成功后获取)成功过程安装设置配置监听桌面类与服务器类的区别总结说明:失败过程失败问题一模一样,无论安装成功或者失败都出现“无法添加用户XXXX到%2%组中”的弹窗,都是点6下继…

oracle立即关闭数据库,Oracle数据库的起步和关闭

Oracle数据库的启动和关闭要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆,启动一个数据库需要三个步骤:1、 创建一个Oracle实例(非安装阶段)2、 由实例安装数据库(安装阶段)3、 打开数据…

oracle空例程,2018.5.29 Oracle连接到空闲例程

解决方法如下:1、通过cmd命令窗启动Oracle:(最好是以管理员身份启动)C:\Users\Administrator>sqlplus /nologSQL>conn /as sysdba 或者这种 conncet [email protected] as sysdba //sys是用户名 123456是密码 。 后面的是数据库名字SQL>startup…

linux ospf 命令,OSPF单区域配置 - linuxprobe2020的个人空间 - OSCHINA - 中文开源技术交流社区...

为了弥补距离矢量路由协议的不足,IEFI组织开发了一种基于链路状态的内部网关协议OSPF实验环境:红,绿,蓝三个颜色区域代表三个不同网络的办公场所,要求使用OSPF协议实现网络互通。pc1:172.16.1.1pc2:172.16.2.1pc3:172.…

Linux内核权限维持,Linux权限维持笔记

一、修改文件/终端的属性1、修改文件创建时间如果蓝队是按照文件修改时间来判断后门的话,比如现在我们上传一个shell,可以看到shell文件与原文件的时间是不同的解决方法:touch -r teamserver shell.php现在再来看原文件与shell文件的修改时间…

ubuntu下的linux怎样备份文件,Ubuntu系统如何备份还原?Ubuntu系统备份还原教程

Ubuntu系统如何备份还原?Ubuntu系统是一个以桌面应用为主的开源操作系统,专为开发团队而打造!无论你使用的是什么操作系统,都有可能出现电脑无法修复的故障,这时候备份还原功能就显得非常重要了。今天小编要给大家分享…

jenkins linux编译c,【Linux】【Jenkins】代码编译和执行过程中的问题汇总

1.问题1:java.io.FileNotFoundException: /root/.jenkins/workspace/Videoyi_AutoTest_Maven/config-log4j\log4j.xml (No such file or directory)该问题是由于代码是在windows下编写和编译的,使用的都是\\来实现目录结构的,结果到linux下的…

linux cd -目录,linux cd

cd -返回之前的目录cd !$ 把上个命令的参数作为这个命令的参数阅读目录(Content)1.命令格式:cd [目录名]2.命令功能切换当前目录至 [目录名]3. 常用范例1.进入系统根目录命令:cd /说明:进入系统根目录,上面命令执行完后拿ls命令看一下&#x…

linux清理整个磁盘空间,一次Linux磁盘空间清理的经历

最近,在Linux上运行BPM应用总是报没有空间的错误。经过一番调查和周折,终于找出了问题的症结,并顺利解决。今天,我把过程总结一下,方便自己或其他有类似问题的朋友参考。这里不对具体命令的具体各种参数做深入介绍&…

linux6.5 查看分辨率命令,centos6.5跟centos7的top命令中移动查看顺序的指令怎么不一样...

top 命令 移动查看顺序centos6.5 以下 top -ab -n 1按o 按大写字母可以调顺序 大写字母往左 小写往右f,o . Fields/Columns: ‘f’ add or remove; ‘o’ change display orderF or O . Select sort field查看cpu和内存占用排序,可以直接快捷方式但是在centos7中快捷键用大小写…

linux nfs spec,创建 NFS Ubuntu Linux 服务器卷 - Azure Kubernetes Service | Microsoft Docs

您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.在 Azure Kubernetes 服务 (AKS) 中手动创建和使用 NFS(网络文件系统)Linux 服务器卷4/25/2019本文内容基于容器…

c语言中字符数字加'0',C语言中的NULL与转义字符'\0'以及数值0的关系

以下两种只是一个巧合,只不过地址值的数值为0而已。0本身只不过是一个可以显示的字符,与内存并没有直接关系。在0与ASCII表中关联NULL做了关联,这样使得输入转义字符\0,也可以将一个变量赋值为NULL。而\0对应的ASCII码又是第0号&a…

c语言程序设计杨辉三角过程,C语言编程 打印杨辉三角

在做这道题时首先要观察杨辉三角的规律11 11 2 11 3 3 11 4 3 4 1……可以看出1.每行的数字个数与所处行数相等2.除去每行第一个和最后一个数字唯一,其他数字都等于头顶元素加头顶前一个元素源代码:#include#includevoid PrintY(int length, int array[][100]){int …

c语言中的所有关键字,C语言中的32个关键字

C语言中的32个关键字数据类型关键字(12个)(1) char:声明字符型变量或函数(2) double:声明双精度变量或函数(3) enum:声明美剧类型(4) float:声明浮点型变量或函数(5) int:声明整型变量或函数(6) …