一、Gradle 手动创建一个项目

文章目录

  • Gradle 介绍
    • Gradle Wrapper
  • Gradle 使用
    • 手动安装 Gradle
    • 初始化

Gradle 介绍

Gradle 是一个快速的、可信的、适应性强的自动化构建工具,它是开源的。它使用优雅的并且可扩展的描述性语言。其他的介绍在官网可以了解。

Gradle Wrapper

官方建议使用 Gradle Wrapper 来执行任何构建,有如下好处:

  1. 统一 Gradle 版本,并且是自动化的统一,当多个用户协作开发项目时,不需要每个人手动配置 Gradle,可由 IDE(如 IntelliJ IDEA) 自动配置
  2. 更改简单的 Wrapper 定义即可为不同用户配置不同的 Gradle 版本。
  3. 更改简单的 Wrapper 定义即可为不同的构建环境配置不同的 Gradle 版本。

基于以上好处,我们就开始使用 Gradle Wrapper 来构建一个新的项目。

Gradle 使用

手动安装 Gradle

使用 Gradle Wrapper 需要一个提前安装好的 Gradle,所以我们需要先安装一个可用的 Gradle,安装的这个 Gradle 只用于初始化用 Gradle Wrapper 构建的项目。

安装 Gradle 的步骤很简单,就是下载 Gradle 发行包,然后解压并配置环境变量(不配置环境变量也可以,在执行命令的时候要带上解压后 Gradle 的 bin 目录的相对路径或者绝对路径)。

此处下载的是 gradle-8.4-bin.zip 文件。

Gradle 发布地址在:https://gradle.org/releases/

将文件解压到 D:\tools,那么目录结构如下:

在这里插入图片描述
新增环境变量 GRADLE_HOME,值为 D:\tools\gradle-8.4。编辑 PATH 变量,增加条目 %GRADLE_HOME%\bin

打开 CMD 窗口,输入以下命令测试 Gradle 是否安装成功。

$ gradle -v


------------------------------------------------------------
Gradle 8.4
------------------------------------------------------------

Build time:   2023-10-04 20:52:13 UTC
Revision:     e9251e572c9bd1d01e503a0dfdf43aedaeecdc3f

Kotlin:       1.9.10
Groovy:       3.0.17
Ant:          Apache Ant(TM) version 1.10.13 compiled on January 4 2023
JVM:          11.0.17 (Oracle Corporation 11.0.17+10-LTS-269)
OS:           Windows 11 10.0 amd64

初始化

初始化的构建任务名称是 wrapper,在初始化之前先介绍一下这个任务支持的参数:

  • --gradle-version,作用是指定指定构建 Wrapper 的 Gradle 的版本,默认情况下是使用和执行 wrapper 任务相同的 Gradle 的版本,指定了之后会下载指定版本的 Gradle 并执行 wrapper 构建。使用方式是在后面增加 --gradle-version=xxx,此属性允许以下值:
    • latest
    • release-candidate
    • nightly
    • release-nightly
    • 具体的版本号,比如:7.5
  • --distribution-type,Wrapper 使用的 Gradle 的类型,分别有 bin(默认)all。这两种区别是 bin 仅含有二进制文件,而 all 还包含源码和 demo 代码,可以在 IDEA 中编写 Gradle 文件获得代码自动补全。当然下载 all 类型的文件的体积比 bin 的大。
  • --gradle-distribution-url,Wrapper 下载 Gradle 发布包的 HTTP 链接。这个默认是使用官方的链接,当然可以替换成国内的镜像源,速度 可能 会快一点。
  • --gradle-distribution-sha256-sum,验证下载的 Gradle 文件的 SHA256 哈希值,确保文件在下载过程中没有被篡改或者损坏。
  • --network-timeout,指定下载 Gradle 文件的超时时间,默认 10000,单位是毫秒(ms)。
  • --no-validate-url--validate-url,这两个是成对的参数,表示是否启用对 URL(--gradle-distribution-url参数指定) 的验证,默认启用。

    验证 URL 的方式为:假如是 HTTPS 就发送一个 HEAD 请求;如果是文件系统,就检查文件是否存在。

到现在终于可以真正初始化了。

  1. 首先新建 D:\test\gradle-wrapper-test 目录。

  2. 新建文件 settings.gradle,表示这是个 Gradle 项目。

  3. 在这个目录里面运行 CMD 命令:

    $ gradle wrapper --gradle-version=7.5 --distribution-type=all
    

执行完成后,查看 gradle\wrapper\gradle-wrapper.properties文件:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

就这么一步就已经完成了使用 Wrapper 方式创建 Gradle 项目。

另外假如需要使用 Gradle 构建此项目,比如运行 build 任务,注意要使用项目下的 gradlew.bat(Unix 系统使用 gradlew)。

还有一个地方需要说明,上面的 gradle-wrapper.properties 文件中 distributionBasezipStoreBase 的值都是 GRADLE_USER_HOME(不是 GRADLE_HOME),此处 GRADLE_USER_HOME 是环境变量,Gradle 下载的发行包以及所有的依赖都在这个目录下面,默认的目录是 ${user_home}\.gradle,而 ${user_home} 一般在 C 盘,所以如果想要节省 C 盘空间的话,可以将这个环境变量明确配置到别的位置。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

找不到 sun.misc.BASE64Decoder ,sun.misc.BASE64Encoder 类

找不到 sun.misc.BASE64Decoder ,sun.misc.BASE64Encoder 类 1. 现象 idea 引用报错 找不到对应的包 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;2. 原因 因为sun.misc.BASE64Decoder和sun.misc.BASE64Encoder是Java的内部API,通…

AI模型训练——入门篇(二)

导语:本文主要介绍了基于BERT的文本分类方法,通过使用huggingface的transformers库实现自定义模型和任务。具体步骤包括:使用load_dataset函数加载数据集,并应用自定义的分词器;使用map函数将自定义分词器应用于数据集…

【从删库到跑路 | MySQL总结篇】表的增删查改(进阶下)

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 目录 一、联合…

医学检验(LIS)管理系统源码,LIS源码,云LIS系统源码

医学检验(LIS)管理系统源码,云LIS系统全套商业源码 随着全自动生化分析仪、全自动免疫分析仪和全自动血球计数器等仪器的使用,检验科的大多数项目实现了全自动化分析。全自动化分析引入后,组合化验增多,更好的满足了临床需要&…

离散化笔记

文章目录 离散化的适用条件离散化的意思AcWing 802. 区间和CODECODE2 离散化的适用条件 离散化用于区间求和问题对于数域极大,而数的量很少的情况下 离散化的意思 背景:对于一个极大数域上的零星几个数进行操作后,求某段区间内的和 其实意思…

【机器学习 | 可视化系列】可视化系列 之 决策树可视化

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

沈阳师范大学期末考试复习pta循环数组函数指针经典编程题汇总+代码分析

前言:临近期末,接下来给大家分享一些经典的编程题,方便大家复习。不一定难,但都是入门的好题,尽可能的吃透彻。因为据说期末考试的题很多来自pta上面的原题。 对于一些语言我是用c来写的,不妨碍理解&#…

express+multer实现简单的文件上传功能

expressmulter实现简单的文件上传功能 1.安装multer和uuid依赖 cnpm install -S uuid multer2.添加multer的配置文件 在config文件夹下添加uploa.js文件,内容如下: // 引入multer const multer require(multer) // uuid : 用于生成不重复的由英文组…

Java EE 多线程

文章目录 1. 认识线程1.1 什么是进程1.2 什么是线程1.2.1. 线程是怎么做到的呢?1.2.2. 进程和线程的关系 1.3 多线程编程1.3.1. 第一个多线程程序1.3.2. 使用 jconsole 命令查看线程1.3.3. 实现 Runnable 接口,重写 run1.3.4. 继承 Thread 重写 run&…

存款买房(Python)

📑前言 本文主要是【Python】——Python存款买房问题的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一…

【数据结构】——解决topk问题

前言:我们前面已经学习了小堆并且也实现了小堆,那么我们如果要从多个数据里选出最大的几个数据该怎么办呢,这节课我们就来解决这个问题。我们就用建小堆的方法来解决。 首先我们来看到这个方法的时间复杂度,我们先取前k个数据建立…

LLM三阶段训练代码汇总

在进行大模型的阶段训练时,从头编写代码有点浪费时间。为了更高效地实现这一目标,我们可以利用GitHub上已有的现成代码。下面对现成的代码库进行总结。 欢迎关注公众号 1. LLaMA-Factory LLaMA Factory: 轻松的大模型训练与评估 https://github.com/hiyouga/LLaMA-Factory …

c++[string实现、反思]

我的码云 我的string码云 分析总结 1.项目结构 所有的类和函数需要在namespace中实现&#xff0c;要和string高度对应 private:char* _str;//字符串size_t _size;//有效长度size_t _capacity;//总空间&#xff0c;包括\0const static size_t npos-1;2.定义变量 <1> 所…

前端开发_HTML

简介 CSS用于美化内容 HTML用于摆放内容 可以理解为HTML是基础&#xff0c;CSS是工具 HTML定义 HTML 超文本标记语言——HyperText Markup Language 超文本——链接 标记——标签&#xff0c;即带尖括号的文本 标签语法 双标签 开始标签&#xff1a; <xxx> 即尖…

WARNING: Access control is not enabled for the database.

MongoDB shell version v3.4.24 WARNING: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted. 1)未启用访问控制 2)读写访问不受限制 D:\MongoDB\Server\3.4\bin>mongo MongoDB shell version v3.4.24 c…

操作系统 day14(进程同步、进程互斥、互斥的代码实现、互斥的硬件实现、互斥锁)

进程同步 概念 进程的异步性体现在&#xff0c;例如&#xff1a;当有I/O操作时&#xff0c;进程需要等待I/O操作&#xff0c;而每个I/O操作又是不同的&#xff0c;所以进程没有一个固定的顺序&#xff0c;固定的时间来执行&#xff0c;而这体现了进程的异步性。 进程互斥 …

广域网加速技术

摘要&#xff1a; 随着企业数字化转型快速发展&#xff0c;越来越多企业将IT系统、应用和服务部署到云上&#xff0c;以实现更高效、灵活的管理和使用。这就对广域网提出了更高的要求&#xff0c;而广域网线路往往存在带宽费用昂贵、服务质量不可靠等问题。为了改善用户体验&am…

RabbitMQ消息的应答

消息的应答机制 消费者完成一个任务可能需要一段时间&#xff0c;如果其中一个消费者处理一个长的任务并仅只完成了部分突然它挂掉了&#xff0c;会发生什么情况。RabbitMQ 一旦向消费者传递了一条消息&#xff0c;便立即将该消息标记为删除。在这种情况下&#xff0c;突然有个…

【MySQL】常用内置函数:数值函数 / 字符串函数 / 日期函数 / 其他函数

文章目录 数值函数round()&#xff1a;四舍五入ceiling()&#xff1a;上限函数floor()&#xff1a;地板函数abs()&#xff1a;计算绝对值rand()&#xff1a;生成0-1的随机浮点数 字符串函数length()&#xff1a;获取字符串中的字符数upper() / lower()&#xff1a;将字符串转化…