《Gradle权威指南》--Android Gradle多项目构建
No1:
Android多项目设置
目录结构:
MyProject/
setting.gradle
app/
build.gradle
libraries/
lib1/
build.gradle
lib2/
build.gradle
setting.gradle配置文件
include ':app',':libraries:lib1',':libraries:lib2'
也可以指定项目目录
include ':example912'
project(':example912').projectDir = new File(rootDir,'chapter09/example912')
No2:
库项目引用和配置
dependencies {compile project(':libraries:lib1')}
注:Android Lib打包成一个aar包,Java Lib打包成一个jar包
如果包里面有资源,就用Android Lib,如果没有并且是纯java程序可以用Java Lib
同时发布多个版本的aar包
android{
publishNonDefault true
}
dependencies{
flavor1Compile project(path:':lib1',configuration:'flavor1Release')
flavor2Compile project(path:':lib1',configuration:'flavor2Release')
}
No3:
库项目单独发布
如何搭建自己的Maven私服:
1)使用Nexus Repository Manager,版本选择2.x.x,下载地址:http://www.sonatype.com/download-oss-sonatype,选择nexus-2.12.1-01-bundle.tar.gz包
2)在nexus-2.12.1-01\bin\jsw目录下,运行start-nexus脚本启动Nexus
3)浏览器打开http://localhost:8081/nexus/访问,Log In链接,默认用户名admin,密码admin123
No4:
build.gradle文件中应用Maven插件
apply plugin: 'com.android.library'
apply plugin: 'maven'
配置Maven构建的三要group:artifact:version
apply plugin: 'com.android.library'
apply plugin: 'maven' version '1.0.0'
group 'org.flysnow.widget'
uploadArchives{
repositoried{
mavenDeployer{
repository(url:"http://localhost:8081/nexus/content/repositories/releases"){
authentication(userName:"admin",password:"admin123")
}
snapshotRepository(url:"http://localhost:8081/nexus/content/repositories/snapshots"){
authentication(userName:"admin",password:"admin123")
}
pom.artifactId = "pullview"
pom.packaging = "aar"
}
}
}
告诉Gradle
buildscript{
repositoried{
jcenter()
}
dependencies{
classpath 'com.android.tools.build:gradle:1,5,0'
}
}
allprojects{
repositories{
jcenter()
maven{
url 'http://localhost:8081/nexus/content/groups/releases'
}
}
}
这样就可以在依赖配置里引用刚发布的aar包
dependencies{
compile 'org.flysnow.widget:pullview:1.0.0'
}
《Gradle权威指南》--Android Gradle多项目构建的更多相关文章
- 《Gradle权威指南》--Gradle插件
No1: 应用插件 apply plugin:'java' apply plugin:org.gradle.api.plugins.JavaPlugin apply plugin:JavaPlugin ...
- 《gradle权威指南》--Gradle入门
No1: Window下搭建Gradle:添加GRADLE_HOME环境变量,然后把GRADLE_HOME\bin添加到PATH系统变量里保存即可.完成后打开CMD,运行gradle -v来验证 No ...
- 《Gradle权威指南》--Gradle构建脚本基础
No1: 设置文件默认名是setting.gradle,放在根目录下,大多数作用都是为了配置子工程 No2: 一个Project包含很多个Task.Task就是一个操作,一个原子性的操作.其实它是Pr ...
- 《Gradle权威指南》--Gradle任务
No1: 多种方式创建任务 def Task ex41CreateTask1 = task(ex41CreateTask1) ex41CreateTask1.doLast{ println " ...
- 读书笔记--Android Gradle权威指南(下)
前言 最近看了一本书<Android Gradle 权威指南>,收获挺多,就想着来记录一些读书笔记,方便后续查阅. 本篇内容是基于上一篇:读书笔记--Android Gradle权威指南( ...
- 读书笔记--Android Gradle权威指南(上)
本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 最近看了一本书<Android Gradle 权威指南>,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所 ...
- Gradle系列之Android Gradle插件
原文发于微信公众号 jzman-blog,欢迎关注交流. 通过前面几篇文章学习了 Gradle 基础知识以及 Gradle 插件相关的知识,关于 Gradle 及其插件相关知识请先阅读下面几篇文章: ...
- Gradle系列之Android Gradle基础配置
原文发于微信公众号 jzman-blog,欢迎关注交流. 通过前面几篇文章学习了 Gradle 基础知识以及 Gradle 插件相关的知识,关于 Gradle 及其插件相关知识请先阅读下面几篇文章: ...
- Gradle系列之Android Gradle高级配置
本篇文章主要在之前学习的基础上,从实际开发的角度学习如何对 Android Gradle 来进行自定义以满足不同的开发需求,下面是 Gradle 系列的几篇文章: Gradle系列之初识Gradle ...
- 《Gradle权威指南》--Android Gradle多渠道构建
No1: Build Variant = Build Type + Product Flavor Build Variant:构建的产物 Build Type:构建的类型 Product Flavor ...
随机推荐
- Linux之Ubuntu与Windows更改默认启动顺序[转载]
装双系统后,经常会遇到与Windows更改默认启动顺序的需要,这样有助于开机时可以避免手动选择经常使用的系统了. 当然这解决办法不是博主的主意,本文纯属抄録者,故文章题目也声明了是转载,解决方案如下叙 ...
- 第16月第31天 mongo
1. 94 brew install mongodb 95 cd ~ 96 cd Desktop/web/ 97 ls 98 mkdir mongo 99 cd mongo/ 100 ...
- pygame(class类)调用视图的方法
以下将介绍pygame精灵动画的基础知识,希望对大家有帮助:1.在此,精灵类必须继承pygame.sprite.Sprite并初始化pygame.sprite.Sprite.__init__(self ...
- org.springframework.beans.BeanUtils与org.apache.commons.beanutils.BeanUtils的copyProperties用法区别
知识点 org.springframework.beans.BeanUtils与org.apache.commons.beanutils.BeanUtils都提供了copyProperties方法,作 ...
- redis的底层数据机构
集群架构 参考 https://blog.csdn.net/wcf373722432/article/details/78678504 https://www.cnblogs.com/George19 ...
- B. Planning The Expedition
题目链接:http://codeforces.com/contest/1011/problem/B 题目大意: 输入的n,m代表n个人,m个包裹. 标准就是 每个人一开始只能选定吃哪一个包裹里的食物, ...
- geeksforgeeks-Array-Rotate and delete
As usual Babul is again back with his problem and now with numbers. He thought of an array of number ...
- Python中【__all__】的用法
Python中[__all__]的用法 转:http://python-china.org/t/725 用 __all__ 暴露接口 Python 可以在模块级别暴露接口: __all__ = [&q ...
- 【vim】自动补全 Ctrl+n
Vim 默认有自动补全的功能.的确这个功能是很基本的,并且可以通过插件来增强,但它也很有帮助.方法很简单. Vim 尝试通过已经输入的单词来预测单词的结尾. 比如当你在同一个文件中第二次输入 &quo ...
- 【转】htop使用详解--史上最强(没有之一)
在管理进程时通常要借助一些工具,比较常用的就是ps和top了:不过CentOS还为我们提供了一个更加强大的工具htop,下面就来了解一下此工具的使用方法.一.安装htop htop工具在epel源中提 ...