【2】Gradle-快速入门使用【Gradle项目结构概念】

news2024/11/17 20:20:39

目录

  • 【2】Gradle-快速入门使用【Gradle项目结构概念】
    • 安装
      • 本地安装
        • 先决条件
      • 官网安装教程
    • Gradle 快速指南
      • 初始化项目
      • 查看Gradle的项目结构
      • 了解Gradle Wrapper
      • 调用Gradle包装器
      • 了解Gradle的项目结构
      • 了解`settings`文件
      • 了解构建脚本
    • IDEA中使用Gradle
      • 创建一个新项目
      • 创建一个Spring Boot 项目
      • Idea中 Gradle操作

个人主页: 【⭐️个人主页】
需要您的【💖 点赞+关注】支持 💯


在这里插入图片描述

【2】Gradle-快速入门使用【Gradle项目结构概念】

📖 本文核心点:

  • Gradle安装的条件
  • Gradle的项目初始化命令
  • Gradle的IDEA中使用
  • Gradle Wrapper的概述
  • Gradle的项目结构
  • Gradle多模块
  • settings.gradle和build.gradle文件的作用

安装

本地安装

您可以在Linux、macOS或Windows上安装Gradle Build Tool。

先决条件

Gradle在所有主要操作系统上运行。它需要Java开发工具包(JDK)版本8或更高版本才能运行。您可以查看兼容性矩阵以获取更多信息。

Gradle支持Kotlin和Groovy作为主要构建语言。Gradle有自己的Kotlin和Groovy库,因此不需要安装它们。

官网安装教程

不同的操作系统,使用不同的安装说明,我这里就不一一赘述了。安装软件工具,应该是一个软件开发人员最基本的能力。官网的安装教程是最新最可行的方案。所以自己摸索几分钟或1个小时,基本就安装成功

  • 注意以下先决条件和gradle版本与java版本的对应关系。
    gradle 安装教程
    Gradle版本与Java等的兼容性

安装成功后,我们只要在系统中执行

gradle -v
gradle

Welcome to Gradle 8.4.

Directory '/' does not contain a Gradle build.

To create a new build in this directory, run gradle init

Gradle 快速指南

初始化项目

通过使用Gradle init创建Java应用程序来学习Gradle的基础知识。

  • 初始化一个新的Gradle项目
    init:命令
    gradle init 
    kongxiang@kongxiangdeMacBook-Pro:gradle init
    Starting a Gradle Daemon, 3 incompatible Daemons could not be reused, use --status for details
    
    Select type of project to generate:
      1: basic
      2: application
      3: library
      4: Gradle plugin
    Enter selection (default: basic) [1..4] 2
    
    Select implementation language:
      1: C++
      2: Groovy
      3: Java
      4: Kotlin
      5: Scala
      6: Swift
    Enter selection (default: Java) [1..6] 3
    
    Generate multiple subprojects for application? (default: no) [yes, no] yes
    Select build script DSL:
      1: Kotlin
      2: Groovy
    Enter selection (default: Kotlin) [1..2] 2
    
    Project name (default: gradle-init-study): gradle-study
    Source package (default: gradle.study): com.kongxiang.study.gradle
    Enter target version of Java (min. 7) (default: 21): 20
    Generate build using new APIs and behavior (some features may change in the next minor release)? (default: no) [yes, no] no
    
    > Task :init
    To learn more about Gradle by exploring our Samples at https://docs.gradle.org/8.4/samples/sample_building_java_applications_multi_project.html
    
    BUILD SUCCESSFUL in 54s
    2 actionable tasks: 2 executed
    

查看Gradle的项目结构

在这里插入图片描述

探索Gradle文件并构建脚本

了解Gradle Wrapper

Gradle Wrapper是开始Gradle构建的首选方式。`Wrapper下载声明的特定版本的Gradle(如果需要),然后调用构建中声明的特定版本的Gradle。

在新创建的项目中,先看看Gradle Wrapper使用的文件。它由macOS和Linux的shell脚本以及Windows的批处理脚本组成。

这些脚本允许您运行Gradle构建,而无需在系统上安装Gradle。它还有助于确保同一版本的Gradle用于不同开发人员以及本地和CI机器之间的构建。

从现在开始,您永远不会直接调用Gradle;相反,您将使用Gradle包装器

调用Gradle包装器

通过输入以下命令使用包装器:

$ ./gradlew build
在Windows中,命令是:
$ gradlew.bat build

第一次运行包装器时,如果Gradle二进制文件尚未安装在您的机器上,它会下载缓存它们。
在这里插入图片描述
因为是国外网站,所以下载gradle非常慢,我们这里使用的是腾讯的镜像代理地址。
https\://mirrors.tencent.com/gradle/gradle-8.4-bin.zip

Gradle Wrapper旨在致力于源代码控制,以便任何人都可以构建项目,而无需首先安装和配置特定版本的Gradle。

在这种情况下,我们通过包装器调用Gradle来构建我们的项目,因此我们可以看到buildsrc目录现在包含一个新的build文件夹:

在这里插入图片描述

除非另有说明,否则构建过程生成的所有文件都会进入build目录。

了解Gradle的项目结构

在这里插入图片描述

构建包含:

  • 顶级settings.gradle文件。
  • 一个根项目。
  • 一个或多个子项目,每个都有自己的build.gradle文件。

了解settings文件

一个项目由一个或多个子项目(有时称为模块)组成。

Gradle读取settings.gradle文件,以确定哪些子项目构成项目构建


plugins {
    // Apply the foojay-resolver plugin to allow automatic download of JDKs
    id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0"
}

rootProject.name = "tutorial"
include("app")

tutorial根项目包括app子项目。include调用的存在将app目录变成一个子项目。

了解构建脚本

每个子项目都包含自己的build.gradle文件。
build.gradle 文件是构建过程的核心组件,定义了构建项目所需的任务。
build.gradle 文件由Gradle读取并执行。

plugins {
    id 'com.kongxiang.study.gradle.java-application-conventions'
}

dependencies {
    implementation 'org.apache.commons:commons-text'
    implementation project(':utilities')
}

application {
    // Define the main class for the application.
    mainClass = 'com.kongxiang.study.gradle.app.App'
}

此构建脚本让Gradle知道app子项目正在使用哪些依赖项和插件,以及在哪里可以找到它们。我们将在以下章节中更详细地研究这个问题。

IDEA中使用Gradle

idea中默认存在Gradle的插件。所以使用gradle创建项目是非常简单的事情。

创建一个新项目

在这里插入图片描述

创建一个Spring Boot 项目

在这里插入图片描述

Idea中 Gradle操作

在这里插入图片描述

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

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

相关文章

环形处理习题,举例:约瑟夫环,魔方阵

目录 约瑟夫环 魔方阵 约瑟夫环 题目描述:有n 个人围成一圈,顺序排号。从第1个人开始报数从1到3报数凡是报到3 的人退出圈子,问最后留下的是原来的第几号? 环形处理:依次遍历数据集的每个元素(每个人依次报号),直到遍历到最后…

【Linux】编译Linux内核

之所以编译内核,是因为gem5全系统仿真需要vmlinux文件,在此记录一下以备后面需要。 此过程编译之后会获得vmlinux和bzImage两个文件; 主要参考知行大佬的编译内核与gem5官方教程 文章目录 一、Linux源码下载二、安装编译依赖三、编译1. 内核编…

5种常用Web安全扫描工具,快来查漏补缺吧!

漏洞扫描是一种安全检测行为,更是一类重要的网络安全技术,它能够有效提高网络的安全性,而且漏洞扫描属于主动的防范措施,可以很好地避免黑客攻击行为,做到防患于未然。那么好用的漏洞扫描工具有哪些? 答案…

抖音小程序开发实战:打造独特品牌体验的代码之旅

抖音小程序的崛起为品牌提供了一个全新的数字化平台,而通过深入的抖音小程序开发,品牌不仅能够提升曝光度,更能打造独特的用户体验。在本文中,我们将深入研究抖音小程序开发的关键技术要点,并通过实际代码演示&#xf…

互联网医院牌照|互联网医院牌照办理合法经营医疗服务

在当今数字化医疗的快速发展中,互联网医院牌照不仅是对公司医疗业务的认可,也是开启线上医疗服务的关键。我们的服务旨在帮助您快速、顺利地获得互联网医院牌照,以便您可以及时开展线上医疗服务。 互联网医院牌照申请流程: 1、首…

栈 和 队列

什么是栈? 一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出(LIFO - Last In First Out)的原则。   从数据结构的角度来看&…

六度空间(C++)

目录 题目&#xff1a; 输入、输出格式&#xff1a; 代码&#xff1a; 运行结果&#xff1a; 题目&#xff1a; 输入、输出格式&#xff1a; 代码&#xff1a; #include<iostream> #include<algorithm> using namespace std; int g[10005][10005]; float n…

Nussbaumer Transform 以及 Amortized FHEW bootstrapping

参考文献&#xff1a; [Nuss80] Nussbaumer H. Fast polynomial transform methods for multidimensional DFTs[C]//ICASSP’80. IEEE International Conference on Acoustics, Speech, and Signal Processing. IEEE, 1980, 5: 235-237.[SV11] Smart N P, Vercauteren F. Full…

95. 费解的开关

题目 思路 因为最优解是每个灯只操作一次所以顺序无所谓只要确定了第一行后&#xff0c;下面都可以确定当前灯不亮就操作它下面的格子即可点亮它我觉得这种方法是唯一不会互相干扰的方法还是不太理解… 代码 #include <cstdio> #include <cmath> #include <c…

Linux C/C++ 入侵检测系统(IDS绕过技巧)

入侵检测系统&#xff08;IDS&#xff09;是一种网络安全设备&#xff0c;其主要功能是对网络传输进行即时监视&#xff0c;并在入侵检测系统&#xff08;IDS&#xff09;是一种网络安全设备&#xff0c;其主要功能是对网络传输进行即时监视&#xff0c;并在发现可疑传输时发出…

【tgowt】更新thirdparty

更新完毕后是这样的 之前有过构建但是不能用在owt-p2p项目中,会有崩溃? 【tgowt】cmake转ninja vs构建现在好像都更新到108了 submodule比较麻烦 只修改这里的还不行:一旦git submodule init 后,再改这里的似乎晚了?如果能成功clone就有生成 还必须要改这里的 折腾好几次才…

NL2SQL学习

在学习NL2SQL之前先要进行三W提问&#xff1a; 即what 是什么 &#xff1b; why 为什么使用&#xff1b; how 如何使用 NL2SQL是什么&#xff1f; NL2SQL&#xff08;NLP Natural Language To SQL&#xff09;是自然语言处理的新兴研究热点&#xff0c;顾名思义&#xff0…

【STM32】

STM32 1 CMSIS1.1 概述1.2 CMSIS 应用程序文件描述 2 库2.1 简介2.2 标准外设库&#xff08;standrd Peripheral Libraries&#xff09;2.3 HAL 库2.3.1 目录结构2.3.2 HAL库API函数和变量的命名规则2.3.3 HAL库对寄存器位操作的相关宏定义2.3.4 HAL库回调函数2.3.5 HAL使用注意…

drawio连接线的样式设置

drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址draw.io或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能&#xff0c;并实现了云端存储&#xff0c;以及在线共…

给CAD中添加自定义菜单CUIX

本文以AutoCAD2020为例&#xff0c;介绍如何添加自定义菜单。 打开AutoCAD2020&#xff0c;在命令行执行CUI并回车&#xff0c;出现菜单 进入菜单编辑界面 点击传输&#xff0c;然后新建 在菜单上右键&#xff0c;添加自定义菜单 点击保存&#xff0c;即可存为cuix文件。之后…

湖南大学-数据库系统-2018期中考试解析

答案是自己做的&#xff0c;仅供参考。 一、单选题&#xff08;每小题2分&#xff0c;共30分&#xff09; 1、下列关于数据库系统正确的描述是&#xff08; A &#xff09;。 A、数据库系统减少了数据的冗余 B、数据库系统避免了一切冗余 C、数据库系统中数据的一致性是指数据…

leetCode 493 翻转对

给定一个数组 nums &#xff0c;如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。 未完待续~

“辛巴猫舍”内网渗透、提权、撞库学习笔记

前言&#xff1a; 在拿到靶机时&#xff0c;我们最先需要做的是信息收集&#xff0c;包括不限于&#xff1a;C段扫描&#xff0c;端口探测&#xff0c;指纹识别&#xff0c;版本探测等。其次就是 漏洞挖掘、漏洞利用、提权、维持权限、日志清理、留下后门。 以上就是渗透的基本…

企业微信开发教程一:添加企微应用流程图解以及常见问题图文说明

最近在前辈的基础上新添加了一个企微应用&#xff0c;过程中遇到了一些卡点&#xff0c;这里一一通过图片标注与注释的方式记录一下&#xff0c;希望能给后来人提供一些清晰明了的帮助&#xff0c;话不多说&#xff0c;大家直接看图吧。 &#xff08;文中包括一些本项目独有的配…

SPSS二元Logistic回归

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…