【Gradle】Android Gradle 多项目构建
Android Gradle 多项目构建
Android 项目区别
Android项目一般分为库项目,应用项目,测试项目,Android Gradle 根据这些项目分别对应3种插件:com.android.library,com.android.application,com.android.test。
Android多项目设置
定义一个工程,包含很多项目,在Gradle中,项目的结构没有那么多限制,只要在settings.gradle里配置好这些项目就可以了。
库项目引用的配置
Android库项目的引用,通过dependencies实现:
dependencies{
implements project(':plugin')
}
库项目单独发布
Maven私服搭建
搭建自己的Maven私服,推荐使用Nexus Repositories Manager。
具体的搭建如下:
1、下载。在https://www.sonatype.com/ 选择对应的软件类型,我这里选择的是OSS3版本,即免费版。 在https://www.sonatype.com/download-nexus-repo-oss 页面根据操作系统选择需要下载的应用。
2、解压。解压后有两个文件夹,nexus-3.13.0-01和sonatype-work。
3、启动。进入nexus-3.13.0-01目录下的bin目录,然后在命令行中输入./nexus start,启动nexus。
4、浏览器访问http://localhost:8081,如访问成功,即表示nexus搭建成功。以默认的管理员帐号admin,密码admin123登录,可以看到默认创建的仓库。
nexus的具体配置这里不展开讲,具体可以在网上找相关资源,这里只用默认配置。
库项目发布
新建名为TestLib的Android Library,在根目录的gradle.properties中配置如下(这里配置是为了方便统一管理,也可以直接写在library的build.gradle中):
# maven local config
#正式版本号
versionName=1.0.0
#快照版本号
snapshotVersionName=1.0-SNAPSHOT
#快照仓库地址
mavenSnapshotUrl=http://localhost:8081/repository/maven-snapshots/
#发布仓库地址
mavenReleasesUrl=http://localhost:8081/repository/maven-releases/
maven_local_username=admin
maven_local_password=admin123
#项目组 id
maven_pom_groupId=com.wangyz.plugins
#项目名称
maven_pom__artifactId=testlib
#打包类型
maven_pom__packaging=aar
maven_pom__description=test upload
在TestLib目录下的build.gradle的android节点下增加以下配置:
// type显示指定任务类型或任务, 这里指定要执行Javadoc这个task,这个task在gradle中已经定义
task androidJavadocs(type: Javadoc) {
// 设置源码所在的位置
source = android.sourceSets.main.java.sourceFiles
}
// 生成javadoc.jar
task androidJavadocsJar(type: Jar) {
// 指定文档名称
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
// 生成sources.jar
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
// 产生相关配置文件的任务
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
//上传 到 maven 的任务
uploadArchives {
repositories.mavenDeployer {
repository(url: mavenReleasesUrl) {
authentication(userName: maven_local_username, password: maven_local_password)
}
snapshotRepository(url: mavenSnapshotUrl) {
authentication(userName: maven_local_username, password: maven_local_password)
}
pom.project {
// 注意:【这里通过切换 versionName 的赋值来区分上传快照包还是正式包(snapshot 版本必须以 -SNAPSHOT 结尾)】
//version snapshotVersionName
version versionName
artifactId maven_pom__artifactId
groupId maven_pom_groupId
packaging maven_pom__packaging
description maven_pom__description
}
}
}
命令行切换到TestLib目录下,执行gradle uploadArchives命令,执行成功后,在浏览器中可看到上传成功。
库项目的引用
在要引用的项目,如app,在项目根目录的build.gradle的allprojects节点中添加以下配置:
allprojects {
repositories {
google()
jcenter()
mavenCentral()
mavenLocal()
maven {
url mavenReleasesUrl
}
maven {
url mavenSnapshotUrl
}
maven {
url 'https://maven.google.com'
}
}
}
然后在app的build.gradle中引入依赖:
dependencies {
implementation 'com.wangyz.plugins:testlib:1.0'
}
同步项目后,即可引用TestLib的相关资源。
参考以下资源,在此表示感谢!
https://www.jianshu.com/p/33d9861217bf
【Gradle】Android Gradle 多项目构建的更多相关文章
- android 多模块项目构建一
项目构建之项目文件搭建: 1.在android studio中new project,如:mydemo,如在D盘下. 2.创建几个module,选择为Library. 3.项目中用到多模块,最好使用动 ...
- 基于Gradle的spring boot 项目构建
今天听只是分享,听到不用maven而使用Gradle构建,就尝试了下 Java三大构建工具:Ant.Maven和Gradle Gradle是一个基于Apache Ant和Apache Maven概念的 ...
- Gradle入门及SpringBoot项目构建
https://blog.csdn.net/qq_27520051/article/details/90384483 一.介绍 Gradle 是一种构建工具,它抛弃了基于XML的构建脚本,取而代之的是 ...
- Android hybrid App项目构建和部分基本开发问题
1.首先是选型:Cordova+Ionic Framework,调试测试环境是Ripple Emulator.开发环境其实可以随便选,我个人选择了Eclipse,当然Android SDK+ADT也是 ...
- Android Gradle defaultConfig详解及实用技巧
实际项目中,都会应用Android Gradle Plugin,根据实际中的项目模块的职责,可以具体应用如下四种插件类型. 1,apply plugin: 'com.android.applicati ...
- The Android Gradle Plugin and Gradle version-compatibility
http://tools.android.com/tech-docs/new-build-system/version-compatibility Version Compatibility Post ...
- 【Gradle】 Gradle 综合
Gradle User Guide:http://www.gradle.org/docs/current/userguide/userguide.html 针对它的中文翻译:http://ask.an ...
- 第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- 【转】第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
原文网址:http://www.cnblogs.com/smyhvae/p/4456420.html [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.c ...
- 《Gradle权威指南》--Android Gradle多项目构建
No1: Android多项目设置 目录结构: MyProject/ setting.gradle app/ build.gradle libraries/ lib1/ build.gradle li ...
随机推荐
- Sublime Merge真正的Git客户端
Sublime Merge好用吗?借助功能强大的跨平台UI工具包,无与伦比的语法高亮引擎和自定义高性能Git读取库,Sublime Merge为性能设定了标准.所有内容都是可扩展的.键绑定,菜单,主题 ...
- 系统优化——建立linux回收站机制
前言: linux系统下的rm是不可挽回的,命令设计本身没有问题,问题在于我们通常非常的自信,执行的时候喜欢rm -rf,这样的话就非常危险了,在执行的时候如果执行命令不对,甚至是执行的目录不对,那么 ...
- WPF炫酷UI及动画
偶然看见了一张图,感觉挺好看的,花了点时间将他转化成了我代码仓库的一部分.虽然不难但也费时间.其中除了背景是百度的一张底图,其他所有内容均通过WPF的Path.Line.TextBlock.Borde ...
- gradle下mybatis自动生成框架的使用
自动生成框架的意义 主要为了解决人为添加mapper,模型等工作,减少错误,提交效率! 添加引用build.gradle configurations { mybatisGenerator } myb ...
- bootstrap-table 常用总结-树形结构
关于树形结构,上篇文章如果还是不能理解的话,请看这一篇.把其他的没有用到的功能都去掉,只留最基础的树形结构! 废话不多说,直接上代码!所有的数据都是走的本地,如果大家想改的话可以自己改,但是需要注意的 ...
- C lang:character input and output (I/O)
Xx_Introduction Character input and output is by more line character conpose of the text flow Defin ...
- dedecmsV5.7 百度编辑器ueditor 多图上传 在线管理 排序问题
问题:dedecms后台百度编辑器ueditor的多图上传-在线管理的图片排序有问题,想把这个顺序调成按照文件修改时间倒序来展示 解决方法: 1.打开/include/ueditor/php/acit ...
- Cesium 加载 gltf 模型
var viewer = new Cesium.Viewer('cesiumContainer', { /*帮助*/ navigationHelpButton: true, baseLayerPick ...
- MySQL Online DDL与DML并发阻塞关系总结
MySQL DDL操作执行的三种方式 1,INPLACE,在进行DDL操作时,不影响表的读&写,可以正常执行表上的DML操作,避免与COPY方法相关的磁盘I/O和CPU周期,从而最小化数据库的 ...
- 并发编程~~~协程~~~greenlet模块, gevent模块
一 协程 1. 协程: 单线程下的并发,又称微线程,纤程.协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的. 并发真正的核心: 切换并且保持状态. 开启协程并发的执行,自己的程序把控着C ...