每个公司每个项目开发小组,或多或少都有一些大大小小的项目,如果公司用的是Gradle构建工具,那如何保证下面3点需求呢:

  1. Gradle配置单独维护,其它工程共用,
  2. 每个项目单独存放GIT,满足不同开发人员不同权限的需求
  3. 开发人员可以根据自已的喜好,定制不同的项目目录结构

首先上图,先看一下我自已定义学习项目完整目录结构图如下:

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多模块(工程)配置解析 - 满足每个开发者的目录喜好相关推荐

  1. Ice飞冰目录结构应用入口工程配置路由配置《四》

    建一个icestark微前端项目的情况下,来看这些配置(搬官网) 目录结构: ├── .ice/ # 运行时生成的临时目录 ├── build/ # 构建产物目录 ├── mock/ # 本地模拟数据 ...

  2. ZYNQ - 嵌入式Linux开发 -07- petalinux工程配置解析

    写在前面 前文实现了对一个工程进行了petalinux的镜像制作,对于中间过程的具体配置没有做过多讲解,本文将针对petalinux的配置做进一步的解析. 字符图形界面配置解析 图像界面操作 打开之前 ...

  3. html+include设置,html中的include标签是什么?htmlinclude实现配置解析

    本篇文章介绍了关于html中的include的配置用法,让HTML文件也能实现include的功能,现在我们一起来看看这篇关于html include的文章吧 首先我们介绍html中的include标 ...

  4. QT从零开始作单片机上位机-串口调试助手+波形显示-实现串口模块的配置

    目录 实现串口模块的配置(1) 一.先列举需要思考的问题: 二.所有的问题要由简单到复杂逐一解决 实现串口模块的配置(1) 完成了基本的界面设计后,我们就要着手实现功能.下来的几章我们看串口数据收发的 ...

  5. 【Android】多模块工程移动目录编译报错:Could not determine the dependencies of task ‘:app:compileDebugJavaWithJavac‘

    1 背景 事情是这样的,最近在利用组件化的方式开发一个多模块工程,看着模块越来越多,于是想把某些同一层级的模块放到同一个目录下,如下: 可以直接将相应模块拖动到目标目录下,也可以如下所示,在模块上右键 ...

  6. c include 多层目录_python+C、C++混合编程的应用

    TIOBE每个月都会新鲜出炉一份流行编程语言排行榜,这里会列出最流行的20种语言. 排序说明不了语言的好坏,反应的不过是某个软件开发领域的热门程度.语言的发展不是越来越common,而是越来越专注领域 ...

  7. c include 多层目录_Rsync 秒杀一切备份工具,你能手动屏蔽某些目录吗?

    转自:高效运维 引言 Rsync 是一种快速且通用的命令行实用程序,可通过远程shell在两个位置之间同步文件和文件夹.使用 Rsync,可以镜像数据,创建增量备份,并在系统之间复制文件.复制数据时, ...

  8. 在Eclipse中创建Maven多模块工程的例子

    参考:http://ju.outofmemory.cn/entry/75620 如果,你需要创建多个项目,项目之间即独立又有关系,那么创建一个Maven多模块项目是个非常好的选择,也非常cool!怎么 ...

  9. springboot多模块工程单元测试jacoco统计代码覆盖率总结

    jacoco统计代码覆盖率的文章一搜一大堆,方法也很简单,就是在pom中引用两个插件: maven-surefire-plugin jacoco-maven-plugin 其中jacoco-maven ...

最新文章

  1. java set 包含_Java Set.contains()方法:判断Set集合是否包含指定的对象
  2. 基于视角特征提取的3D检测方法汇总
  3. c#设置软件开机自动运行,修改注册表
  4. 在Ubuntu 18.04中安装JDK 8
  5. 【HDU - 5943】Kingdom of Obsession(数论,素数间隔结论,构造,思维,匈牙利算法,匹配问题)
  6. TCP通信过程大讨论
  7. php5.4全局变量,PHP 5 全局变量 - 超全局变量
  8. 无苹果,怎么编写内置 iOS 应用?
  9. C#图片处理之:亮度和对比度的校正
  10. 【Energy Forecasting】能源预測的发展和展望
  11. 二维码生成器如何批量制作溯源二维码
  12. 项目管理到底是一个什么样的职位,具体都做些什么事情?
  13. Scrapy框架之传智项目整理
  14. 10月20日前!武汉市科技成果转化中试平台(基地)备案申报条件及流程梳理
  15. OpenGl 之学习笔记 glNormal3f 函数理解和光源相关知识总结
  16. 【随便搞搞】自己写了一个用于炒股软件的自动选股分析代码 0603更新 天齐锂业两个板出局
  17. UG\NX二次开发 判断面的凹凸、圆柱还是孔、外R角还是内R角。三种方案
  18. [再寄小读者之数学篇](2014-05-27 特征值估计)
  19. “隐形正畸第一股”时代天使还能飞多远?
  20. C语言--第三次作业

热门文章

  1. 网络广告假流量盛行,查处有妙招
  2. Frame Stacking 框架堆叠
  3. IEC61850的Read请求报文件MMS PDU解码
  4. 点评2009年PHP十大图书(2)
  5. 程序员面试金典——番外篇之约瑟夫问题1
  6. Leetcode113.路径和II
  7. 有序表的索引顺序结构查找次数分析
  8. TensorRT C++ API用法
  9. tomcat 开启 https 使用apr
  10. 软工网络15个人作业5--软件工程总结