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

news2024/12/24 2:34:10

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 对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/645248.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一口总结了金九银十(P5-P7 级)1000 多道 Java 面试题,20+ 大厂必考点及 Java 面试框架知识点

Java 面试 “金九银十”这个字眼对于程序员应该是再熟悉不过的了,每年的金九银十都会有很多程序员找工作、跳槽等一系列的安排。说实话,面试中 7 分靠能力,3 分靠技能;在刚开始的时候介绍项目都是技能中的重中之重,它…

微服务架构基础--第2章初识SpringBoot

第2章初识SpringBoot 一.预习笔记 1.SpringBoot的定义: SpringBoot是由Pivotal团队提供的一个全新框架,是为了简化Spring应用的初始搭建过程和开发过程。 2.SpringBoot的优点 1)可快速的构建独立Spring应用程序 2)内嵌Servle…

​DMBOK知识梳理for CDGA/CDGP——第六章 数据存储与操作(附常考知识点)

第六章 数据存储与操作 第六章在CDGA|CDGP考试中的分值占比较少,知识点比较密集,主要考点包括:数据存储与操作的定义、目标、数据库管理员(DBA)的角色定位及类型、数据处理的类型ACID和BASE的区别、数据库环境、活动、…

探索工业智能检测,基于轻量级YOLOv5s开发构建焊接缺陷检测识别系统

前面也有讲过将智能模型应用和工业等领域结合起来是有不错市场前景的,比如:布匹瑕疵检测、瓷砖瑕疵检测、PCB缺陷检测等等,在工业领域内也有很多可为的方向,本文的核心目的就是想要基于目标检测模型来开发构建焊接缺陷检测模型&am…

基于opencv测量图片中物体的尺寸(matlab实现)

1、引言 问题重述 已知书本上右下角放一枚一元人民币(直径2.5厘米),请利用计算机视觉技术预测图片中目标的实际尺寸。 1.预测图片中书本的长与宽(单位:厘米)。 2.预测书本右上方用铅笔画的圆圈的外圆直径…

Cocos Creator:AR 交互

推荐:将 NSDT场景编辑器 加入你的3D工具链 Cocos Creator:AR 交互 3D工具集: NSDT简石数字孪生 AR 交互 AR 交互主要由 cc.ScreenTouchInteractor 组件驱动,该组件将触摸事件转换为点击、拖拽和捏合等手势,交互器将这…

SciencePub学术 | 信号处理类重点SCIEI征稿中

SciencePub学术 刊源推荐: 信号处理类重点SCI&EI征稿中!影响因子高,自引率低,对国人非常友好。信息如下,录满为止: 一、期刊概况: 信号处理类重点SCI&EI 📌【期刊简介】IF&#xff1…

RTK 定位回传数据转内网(局域网)mqtt协议--- 格林恩德 CR102 RTK 针对无人机巡检应用

先简单介绍一下CR102 格林RTK高精度设备,CR102接收机,集成高精度模组与4G, WIFI/蓝牙通信模组;双天线定位定向, 同时内置惯导, 输出加速度和姿态信息。支持4G/WIFI/蓝牙无线传输、 LAN网口传输;…

案例研究|中国矿业大学基于JumpServer构建运维安全体系

中国矿业大学是教育部直属的全国重点高校,是教育部、应急管理部与江苏省人民政府共建高校,先后进入国家“211工程”“985优势学科创新平台项目”和国家“双一流”建设高校行列,学校现坐落于素有“五省通衢”之称的国家历史文化名城——江苏省…

Java实训第七天——2023.6.13

文章目录 一、用Visual Studio Code写一个计算器二、同一个js被多个html引用三、js操作css四、DOM对象属性的操作案例五、js解析json 一、用Visual Studio Code写一个计算器 功能&#xff1a;实现简单的加减乘除 <!DOCTYPE html> <html lang"en"> <…

如何录制声音?推荐这2款电脑录音软件!

案例&#xff1a;怎么录制电脑上的声音&#xff1f;在电脑上怎么录制自己的声音&#xff1f;有没有小伙伴知道操作的步骤。 【我想录制语音会议&#xff0c;还想录制自己的歌声&#xff0c;在电脑上如何录制声音&#xff1f;求一个简单易懂的教程&#xff0c;在线等&#xff0…

使用ReactPy报错:RuntimeError: No built-in server implementation installed.解决

目录 一、问题呈现二、问题原因及解决办法三、处理结果 一、问题呈现 在初次运行ReactPy报错raise RuntimeError("No built-in server implementation installed.") RuntimeError: No built-in server implementation installed.具体报错信息如下&#xff1a; D:\i…

小程序快速渲染机制及双线程技术解析

不管我们对于小程序这种形态存在何种质疑&#xff0c;但不可否认已经融入到我们生活的方方面面&#xff0c;出门打车、扫码、点外卖甚至收能量等等操作都是以小程序进行承载。背后的缘由是小程序足够轻量、便捷、跨平台等特点&#xff0c;为用户提供了丰富的功能和优质的用户体…

作为一个优秀的项目经理,你需要做什么?

经常看到这样的项目经理&#xff0c;一副整天忙得团团转的样子&#xff0c;整天忙得团团转&#xff0c;发出一大堆指令&#xff0c; 经常事无巨细都要亲自过问&#xff0c;他还会不断抱怨说&#xff1a; " 我很忙 " 或 " 我很累 " &#xff0c; " 我…

大厂最全1100道Java面试题及答案整理(2023最新版)

前言 春招&#xff0c;秋招&#xff0c;社招&#xff0c;我们 Java 程序员的面试之路&#xff0c;是挺难的&#xff0c;过了 HR&#xff0c;还得被技术面&#xff0c;小刀在去各个厂面试的时候&#xff0c;经常是通宵睡不着觉&#xff0c;头发都脱了一大把&#xff0c;还好最终…

5、alibaba微服务nacos的引入和使用

1、项目中引入nacos 父项目中已经引入了spring-cloud-alibaba&#xff0c;这个里面就已经包含nacos依赖了&#xff0c;所以在子项目中引入nacos依赖不用添加版本信息 <dependencies><dependency><groupId>org.springframework.boot</groupId><arti…

Java创建线程的两种方式和线程的生命周期

方式一&#xff1a;继承Thread类的方式&#xff1a; 创建一个继承于Thread类的子类 重写Thread类的run() --> 将此线程执行的操作声明在run()中 创建Thread类的子类的对象 通过此对象调用start()&#xff1a;①启动当前线程 ② 调用当前线程的run() 说明两个问题&#…

Python3数据分析与挖掘建模(12)多因子:复合分析-相关分析与实现示例

1. 相关分析 1.1 概述 相关分析是一种统计分析方法&#xff0c;用于研究两个或多个变量之间的关系和相互影响程度。它帮助我们了解变量之间的线性关系、趋势和相关程度。 在相关分析中&#xff0c;常用的指标是相关系数&#xff0c;用于衡量两个变量之间的相关程度。最常见的…

Linux之文件一般权限

目录 Linux之文件一般权限 文件和目录的一般权限 解析&#xff1a; 文件类型 文件的权限针对三类对象进行定义 文件针对每类访问者定义的三种权限 对于文件和目录&#xff0c;r&#xff0c;w&#xff0c;x的作用以及含义 设置文件和目录的一般权限 修改文件或目录权限 ---…