Gradle - 多项目配置

1. 理论

  • 不管是根项目还是子项目的,build.gradle文件定义了使用的插件、仓库、依赖等真实有用的配置。settings.gradle文件纯粹是用来定义根项目和子项目及关系的,如项目名,根项目、子项目的关系,以及子项目的目录、gradle文件位置等信息。
  • 根据根项目和子项目的目录关系,可以分为分层布局扁平布局
    • 分层布局:推荐。没有一个单独的根项目目录,根项目是指虚拟的概念,根项目的build.gradle及settings.gradle文件就在根目录,和子项目的根目录平级。
    • 扁平布局:根项目也有一个单独的目录,和其他子项目平级,根项目的build.gradle及settings.gradle文件在根项目文件夹下面。
  • 根项目和子项目的gradle配置,可以只用根项目的build.gradle及settings.gradle文件,也可以拆分成根项目引用各个子项目的build.gradle及settings.gradle文件。

2. 具体配置

  • 根项目的build.gradle
    • 可以通过allprojects进行所有根项目和子项目的通用设置
    • 可以通过subprojects进行所有子项目的通用设置
    • 可以通过project(':projectname')进行特定子项目的设置
  • 根项目的settings.gradle
    • 可以设置本根项目的项目名,如:rootProject.name = 'Root'
    • 可以配置引用了哪些子项目,如:
include 'Common'
project(':Common').projectDir = new File(settingsDir, 'shared/Common')
  • 子项目的build.gradle
    • 可以通过buildscript引用其他的build.gradle文件,如:
buildscript {

    apply from: file('./../../build.gradle')
    ext {
        springBootVersion = '1.5.14.RELEASE'
    }
}
* 直接进行本子项目的配置,如group、version、apply plugin:、dependencies、dependencyManagement、jar等。
  • 子项目的settings.gradle
    • 通常只设置本子项目的项目名,如:rootProject.name = 'Common'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐