7--Gradle进阶 - settings.gradle的文件说明

前言

介绍 settings.gradle 文件之前,先来说明一下,settings.gradle 主要是用来多模块工程使用的。

所以我们先来创建一个多模块的工程。

多模块工程创建

1. 创建 root 工程

cbf07bfc72a5d0775ceed3e8ec5ac5b5.png

1.1 配置本地 Gradle

6f76f44a36a7c925ea9c051c2eeb7831.png

1.2 配置依赖

91f12f1af6a07d3e7ac793ebd9b76dcc.png

plugins {
    id 'java'
}

group 'com.lijw'
version '1.0-SNAPSHOT'

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    implementation 'org.springframework:spring-beans:4.1.7.RELEASE'
    implementation 'org.springframework:spring-web:4.1.7.RELEASE'
    implementation 'org.springframework:spring-webmvc:4.1.7.RELEASE'
    implementation 'org.springframework:spring-tx:4.1.7.RELEASE'
    implementation 'org.springframework:spring-test:4.0.5.RELEASE'
    implementation 'org.springframework:spring-jdbc:4.1.7.RELEASE'

    implementation 'org.mybatis:mybatis-spring:1.2.3'
    implementation 'org.mybatis:mybatis:3.3.0'

    implementation 'mysql:mysql-connector-java:5.1.36'
    implementation 'com.alibaba:druid:1.0.15'

    implementation "com.fasterxml.jackson.core:jackson-databind:2.2.3"
    implementation "com.fasterxml.jackson.core:jackson-annotations:2.2.3"
    implementation "com.fasterxml.jackson.core:jackson-core:2.2.3"

    implementation 'org.aspectj:aspectjweaver:1.8.6'
    implementation 'log4j:log4j:1.2.17'
    implementation 'org.slf4j:slf4j-api:1.7.25'
    implementation 'jstl:jstl:1.2'

    compileOnly 'javax.servlet:servlet-api:2.5'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

test {
    useJUnitPlatform()
}

现在已经初始化好 root 工程了,下面来创建多个模块工程。

2.创建模块工程

2.1 创建第一个模块工程

55bc626d2f5c0aa6da3e5814bdcbbbeb.png

e284d9a5c97a25e88bbfbbb426c21eb0.png

1d8b9c50a0be533e09ec1c787ce74d3b.png

当创建好模块工程之后,我们可以看到 settings.gradle 增加了模块工程的配置:

include 'subproject01'

2.2 创建多个模块工程

下面我们再同样创建多个模块工程,如下:

f587c8fe54feeeec9823a37a52c9b612.png

可以看到在模块工程里面,再创建模块工程,settings.gradle 则会增加配置如下:

include 'subproject01:subpj01'
findProject(':subproject01:subpj01')?.name = 'subpj01'

下面来看看 settings.gradle 的说明。

settings.gradle的文件说明

首先对 settings 文件的几点说明:

1、作用:主要是在项目初始化阶段确定一下引入哪些工程需要加入到项目构建中,为构建项目工程树做准备。

2、工程树:gradle 中有工程树的概念,类似于 maven 中的project 与module。

76cb406a5c1688c0e96bd5a939b8a16f.jpeg

3、内容:里面主要定义了当前 gradle 项目及子 project 的项目名称

4、位置:必须放在根工程目录下。

5、名字:为settings.gradle 文件,不能发生变化

6、对应实例:与 org.gradle.api.initialization.Settings 实例是一一对应的关系。每个项目只有一个settings 文件。

7、关注:作为开发者我们只需要关注该文件中的include 方法即可。使用相对路径【 :  】引入子工程。

8.一个子工程只有在setting 文件中配置了才会被 gradle 识别,这样在构建的时候才会被包含进去。案例如下所示:

//根工程项目名
rootProject.name = 'root'
//包含的子工程名称
include 'subject01' 
include 'subject02' 
include 'subject03'
//包含的子工程下的子工程名称
include 'subject01:subproject011' 
include 'subject01:subproject012'

项目名称中 ":" 代表项目的分隔符, 类似路径中的 "/". 如果以 ":" 开头则表示相对于 root project 。然后 Gradle 会为每个带有 build.gradle 脚本文件的工程构建一个与之对应的 Project 对象。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐