Android Gradle 本地化部署 maven
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android Gradle 本地化部署 maven,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2696字,纯文字阅读大概需要4分钟。
内容图文
Android Gradle 本地化部署 maven
1、Gradle 脚本
在 Android Studio 中,我们经常引用 aar 文件及 maven 库中的资源。一般来说,我们通过 compile ‘package:library_name:version‘
的方式来引用 maven 库中的包。而通过 compile(name: ‘xxx‘, ext: ‘aar‘)
的方法引用本地生成或其他项目生成的 aar 包(详细请见)。
2、Gradle 引用方式
上面说的本地直接引用 aar 文件的方式有一些问题,比如:
- 资源文件预览等等会有一些 Bug;
- 新生成 aar 后,在多个项目之间共享时,频繁的拷贝同步会很麻烦。
所以我们尝试在本地部署我们的项目,然后在其他项目中直接可以引用了。首先,我们知道,在 Build 脚本运行 compile package:library_name:version
时,会去下面一些目录寻找:
- https://jcenter.bintray.com/package/library_name/version/
- file:/ANDROID_HOME/extras/android/m2repository/package/library_name/version
- file:/ANDROID_HOME/extras/google/m2repository/package/library_name/version
如果你额外在 build.gradle 中自定义配置了本地目录的话,还会去这个目录下面查找,比如在 build.gradle 中配置了:
那么查询的目录会多加四个:
- file:/PROJECT_PATH/commonlibs/library_name.jar
- file:/PROJECT_PATH/commonlibs/library_name-version.jar
– file:/PROJECT_PATH/MODULE_NAME/libs/library_name.jar
- file:/PROJECT_PATH/MODULE_NAME/libs/library_name-version.jar
当在这些目录都找不到依赖后,会运行出错,组建失败。
3、本地部署 aar
在知道了 Gradle 的引用查找原则之后,我们就可以将自己的项目按需部署到本地了。我们一般配置在 ANDROID_HOME/extras/android/m2repository
这个目录中,这样,其他所有工程都可以很方便的访问到,同步更新也只更新一个地方即可。
首先,我们在系统环境变量中设置 ANDROID_HOME
——指向 Android SDK 的安装目录,确保本地部署时能找到相应的目录。
然后,为所需部署的 Module
编写 build.gradle 脚本如下:
我们可以看出,有如下步骤:
- apply plugin: ‘maven‘
:引用 maven 插件进行部署;
- 增加 uploadArchives
Task,用于部署 Module;
- 在 mavenDeployer
中编写相应的配置,包括部署路径、version、groupId、artifactId 等等;
我们可以看到,我们将部署目标路径设为:file://localhost/ANDROID_HOME/extras/android/m2repository/
,这样部署后,相应的 aar、pos、jar 等等文件都会在这个目录中找到。
4、执行部署
执行部署非常简单,我们可以在命令行执行 gradle uploadArchives
这个任务。或者另一种办法是在 Gradle Projects
窗口找到这个 Module 对应的部署 Task,双击执行这个 Task 即可:
在执行完成后,我们在相应的目标目录可以找到部署的文件:
部署完成后,我们在其他工程中,直接 compile ‘package:library_name:version‘
就可以引用了。Gradle 会自动查找到这个依赖以及相应的库文件,引入到工程中进行组建。
5、多 Module 部署
在比较大的项目中,我们经常会在一个 Project 中拥有多个 Module,而这些 Module 中又有相互引用的情况。比如:
比如这个例子中,project 下有两个 Module,而 ModuleB 又在项目内引用了 ModuleA,这时候,在部署 ModuleB 的时候,为 ModuleB 生成的 pom
文件会有问题:
我们可以看出,ModuleB 的 pom 中声明引用了 ModuleA,但是 Module A 对应的 groupId
和 version
都不对,这样,在第三方引用 ModuleB 的时候,会出现依赖错误。这个时候,解决办法是在 ModuleA 的 build.gradle 中加入 project.group
和 project.version
,这样在生成 ModuleB 的 pom 的时候,会自动填入这两个值。
ModuleA 的 build.gradle 如下:
如果填写了 project.group
和 project.version
后,就没必要在 mavenDeployer 中填写 pom.groupId
和 pom.version
了,Gradle 会自动使用 project.group
和 project.version
填入。这样,为 ModuleA 和 ModuleB 部署,都不会出现问题了。
6、参考
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/arnozhang12/article/details/47418899
内容总结
以上是互联网集市为您收集整理的Android Gradle 本地化部署 maven全部内容,希望文章能够帮你解决Android Gradle 本地化部署 maven所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。