c include 多层目录_Gradle多模块(工程)配置解析 - 满足每个开发者的目录喜好
每个公司每个项目开发小组,或多或少都有一些大大小小的项目,如果公司用的是Gradle构建工具,那如何保证下面3点需求呢:
- Gradle配置单独维护,其它工程共用,
- 每个项目单独存放GIT,满足不同开发人员不同权限的需求
- 开发人员可以根据自已的喜好,定制不同的项目目录结构
首先上图,先看一下我自已定义学习项目完整目录结构图如下:
Gradle多工程目录结构图
上面目录除了最上面的gradle目录不可以重命名,其它目录 都可以随意的命名,目录结构可以随意的调整哦。
下面介绍一下实现的方法
一、gradle配置独立存放一个git工程
gradle工程目录结构图
目录结构说明
gradle/wrapper | gradlew | gradlew.bat: 统一gradle版本,避免不同的人使用不同的gradle版本, 导入工程需要注意,不要选择使用 开发工具自带的版本 或 系统中配置的版本, 要选择使用 wrapper 来构建
build.gradle: 多工程的配置方法,可以参考各大论坛中的说明,这里不再详细介绍,不明白的可以联系作者要DEMO
gradle.properties: 属性配置文件,如:jar版本号
settings.gradle.tpl: 定义需要要导入的模块,如:include("ig-data:dao:data-dao-system"),不知道你有没有发现,这个文件后面多出了一个.tpl,对,没错,这只是一个模板,不同的开发者只需要根据此模板创建一个自已的settings.gradle文件,在里面导入自已的项目即可,不需要所有人共用一个settings.gradle文件
.gitignore:
########### TODO 这里面只说明关键忽略项## 必须,避免开发人员把这个文件提交到git中settings.gradle ## 必须,因为公司的项目都是一个git工程,需要clone到gradle目录中,是不需要提交的## 这个名字根据自已喜好定义,所有开发人员最好统一前缀ig-*
到此gradle工程就算完成了,把所有代码提交到git中,只需要一个人负责维护即可,其它人只有clone权限,没有commit权限即可
如果你还是半解,请继续向下看 实例讲解
二、应用实践
假如 你们公司有以下几个项目:
data-dao-db1, data-dao-db2, data-dao-db3
data-cache-db1, data-cache-db2
data-doc-db1, data-doc-db2,data-doc-db3
service-a, service-b, service-c
lib-a, lib-b, lib-c
开发人员A,首先把gradle工程clone到自已的电脑中, 如果开发人员A负责 service-a 依赖 data-dao-db1, data-cache-db1, data-doc-db2, 那么他只需要把 这3个项目 clone到 前面已clone的gradle目录中即可,目录结构随意,项目名称随意,如:
gradle/ ## clone的gradle工程 ... igg-data/ ##自定义的目录 data-dao-db1/ ## clone的data-dao-db1工程 data-cache-db1/ ## clone的data-cache-db1工程 data-doc-db2/ ## clone的data-doc-db2工程 igg-service/ ##自定义的目录 service-a ## clone的service-a工程
然后,根据settings.gradle.tpl创建一个settings.gradle文件,内容如下:
rootProject.name = "project-name" include(":igg-data:data-dao-db1")include(":igg-data:data-cache-db1")include(":igg-data:data-doc-db2")include(":igg-service:service-a")
最后通过开发工具,如idea, 导入工程即可
开发人员B,首先把gradle工程clone到自已的电脑中, 如果开发人员B负责 service-b 依赖 data-dao-db1, data-dao-db2, data-cache-db1, 那么他只需要把 这3个项目 clone到 前面已clone的gradle目录中即可,目录结构随意,项目名称随意,如:
gradle/ ## clone的gradle工程 ... igg-data/ ##自定义的目录 dao/ ## 自定义的目录 db1/ ## clone的data-dao-db1工程 db2/ ## clone的data-dao-db2工程 cache/ ##自定义的目录 db1/ ## clone的data-cache-db1工程 igg-service/ ##自定义的目录 service-a ## clone的service-a工程
然后,根据settings.gradle.tpl创建一个settings.gradle文件,内容如下:
rootProject.name = "project-name" include(":igg-data:dao:db1")include(":igg-data:dao:db2")include(":igg-data:cache:db1")include(":igg-service:service-a")
最后通过开发工具,如idea, 导入工程即可
好了,你是否已经明白,如果还不明白,可以联系作者给你一一说明哦
c include 多层目录_Gradle多模块(工程)配置解析 - 满足每个开发者的目录喜好相关推荐
- Ice飞冰目录结构应用入口工程配置路由配置《四》
建一个icestark微前端项目的情况下,来看这些配置(搬官网) 目录结构: ├── .ice/ # 运行时生成的临时目录 ├── build/ # 构建产物目录 ├── mock/ # 本地模拟数据 ...
- ZYNQ - 嵌入式Linux开发 -07- petalinux工程配置解析
写在前面 前文实现了对一个工程进行了petalinux的镜像制作,对于中间过程的具体配置没有做过多讲解,本文将针对petalinux的配置做进一步的解析. 字符图形界面配置解析 图像界面操作 打开之前 ...
- html+include设置,html中的include标签是什么?htmlinclude实现配置解析
本篇文章介绍了关于html中的include的配置用法,让HTML文件也能实现include的功能,现在我们一起来看看这篇关于html include的文章吧 首先我们介绍html中的include标 ...
- QT从零开始作单片机上位机-串口调试助手+波形显示-实现串口模块的配置
目录 实现串口模块的配置(1) 一.先列举需要思考的问题: 二.所有的问题要由简单到复杂逐一解决 实现串口模块的配置(1) 完成了基本的界面设计后,我们就要着手实现功能.下来的几章我们看串口数据收发的 ...
- 【Android】多模块工程移动目录编译报错:Could not determine the dependencies of task ‘:app:compileDebugJavaWithJavac‘
1 背景 事情是这样的,最近在利用组件化的方式开发一个多模块工程,看着模块越来越多,于是想把某些同一层级的模块放到同一个目录下,如下: 可以直接将相应模块拖动到目标目录下,也可以如下所示,在模块上右键 ...
- c include 多层目录_python+C、C++混合编程的应用
TIOBE每个月都会新鲜出炉一份流行编程语言排行榜,这里会列出最流行的20种语言. 排序说明不了语言的好坏,反应的不过是某个软件开发领域的热门程度.语言的发展不是越来越common,而是越来越专注领域 ...
- c include 多层目录_Rsync 秒杀一切备份工具,你能手动屏蔽某些目录吗?
转自:高效运维 引言 Rsync 是一种快速且通用的命令行实用程序,可通过远程shell在两个位置之间同步文件和文件夹.使用 Rsync,可以镜像数据,创建增量备份,并在系统之间复制文件.复制数据时, ...
- 在Eclipse中创建Maven多模块工程的例子
参考:http://ju.outofmemory.cn/entry/75620 如果,你需要创建多个项目,项目之间即独立又有关系,那么创建一个Maven多模块项目是个非常好的选择,也非常cool!怎么 ...
- springboot多模块工程单元测试jacoco统计代码覆盖率总结
jacoco统计代码覆盖率的文章一搜一大堆,方法也很简单,就是在pom中引用两个插件: maven-surefire-plugin jacoco-maven-plugin 其中jacoco-maven ...
最新文章
- java set 包含_Java Set.contains()方法:判断Set集合是否包含指定的对象
- 基于视角特征提取的3D检测方法汇总
- c#设置软件开机自动运行,修改注册表
- 在Ubuntu 18.04中安装JDK 8
- 【HDU - 5943】Kingdom of Obsession(数论,素数间隔结论,构造,思维,匈牙利算法,匹配问题)
- TCP通信过程大讨论
- php5.4全局变量,PHP 5 全局变量 - 超全局变量
- 无苹果,怎么编写内置 iOS 应用?
- C#图片处理之:亮度和对比度的校正
- 【Energy Forecasting】能源预測的发展和展望
- 二维码生成器如何批量制作溯源二维码
- 项目管理到底是一个什么样的职位,具体都做些什么事情?
- Scrapy框架之传智项目整理
- 10月20日前!武汉市科技成果转化中试平台(基地)备案申报条件及流程梳理
- OpenGl 之学习笔记 glNormal3f 函数理解和光源相关知识总结
- 【随便搞搞】自己写了一个用于炒股软件的自动选股分析代码 0603更新 天齐锂业两个板出局
- UG\NX二次开发 判断面的凹凸、圆柱还是孔、外R角还是内R角。三种方案
- [再寄小读者之数学篇](2014-05-27 特征值估计)
- “隐形正畸第一股”时代天使还能飞多远?
- C语言--第三次作业