一、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:     e9251e572c9bd1d01e503a0dfdf43aedaeecdc3fKotlin:       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.mzph.cn/news/184444.shtml

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

相关文章

适配器模式-C++实现

适配器是一种结构型设计模式,用于将一个接口转换为另一个客户端所需要的接口。该模式通过创建一个适配器对象,使不兼容的接口可以协同工作。 适配器模式主要分为三个角色:适配器类、目标类、适配者类。 适配器模式分为对象适配器和类适配器…

信号收尾.

sigaction 信号捕捉 它也是信号捕捉,不仅能处理普通信号还能处理实时信号,但我们不管实时信号 我们发现函数名和形参中结构体名一样都是sigaction,这在c/c中允许吗? 不建议,但是可以 signo你要捕捉几号信号 输入型参…

HarmonyOS应用开发者基础认证考试题目及答案

一、判断题 Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件。一个应用可以包含一个或多个Ability。 正确(True) 所有使用Component修饰的自定义组件都支持onPageShow,onBackPress和onPageHide生命周期函数。 错误(False) 每调用一次ro…

老泮识趣:难忘何家桥

回忆何家桥往事,写了篇《消失的何家桥》,没想到点击率如此高,出乎意料。网友的共鸣可见,城市发展的今天,乡情是个美好的存在,清贫、朴实,丝毫不影响美感。由于大家的鼓励,触动了我再…

基于Netty实现TCP通信

创建一个Maven项目添加下面依赖 <dependencies><!-- 日志依赖 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.32</version></dependency><dependency><g…

TCP 连接断开

1&#xff1a;TCP 四次挥手过程是怎样的&#xff1f; 客户端打算关闭连接&#xff0c;此时会发送一个 TCP 首部 FIN 标志位被置为 1 的报文&#xff0c;也即 FIN 报文&#xff0c;之后客户端进入 FIN_WAIT_1 状态。 服务端收到该报文后&#xff0c;就向客户端发送 ACK 应答报文…

【微信小程序】保存多张图片到本地相册 wx.saveImageToPhotosAlbum

这里写目录标题 微信小程序检测是否有存储权限wx.getSetting 图片上传从HTML中提取img标签的src属性多图片下载 微信小程序检测是否有存储权限 wx.getSetting 上传前判断是否开启存储权限&#xff0c;如果不检测直接上传会出现fail的情况 var _this this wx.getSetting({su…

阿里云崩溃了,为什么你没有收到补偿?【补偿领取方式放文末】

事情经过 北京时间11月27日&#xff0c;阿里云部分地域云数据库控制台访问出现异常。据悉&#xff0c;从当日09:16起&#xff0c;阿里云监控发现北京、上海、杭州、深圳、青岛、香港以及美东、美西地域的数据库产品(RDS、PolarDB、Redis等)的控制台和OpenAPI访问出现异常&…

PHP在线日语学习平台

有需要请加文章底部Q哦 可远程调试 PHP在线日语学习平台 一 介绍 此日语学习平台基于原生PHP开发&#xff0c;数据库mysql。系统角色分为用户和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlphpstudyvscode 二 功能 学生 1 注册/登录/注销 2 个人中心 3 查看课程…

C#开发的OpenRA游戏之属性SelectionDecorations(14)

C#开发的OpenRA游戏之属性SelectionDecorations(14) 前面分析选择类时,还有一个功能,就是把选中物品的状态和生命值显示出来。 它是通过下面的函数来实现: protected override IEnumerable<IRenderable> RenderSelectionBars(Actor self, WorldRenderer wr, bool …

this.$nextTick与this.$set,解决拖拽表格没有刷新问题!

一&#xff1a;this.$nextTick的用法 将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它&#xff0c;然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一样&#xff0c;不同的是回调的 this 自动绑定到调用它的实例上。 原因是&#xff0c;Vue是异步执行DOM更…

kubernetes(k8s)容器内无法连接同所绑定的Service ClusterIP问题记录

kubernetes(k8s)容器内无法连接同所绑定的Service ClusterIP问题记录 1. k8s环境 k8s使用kubernetes-server-linux-amd64_1.19.10.tar.gz 二进制bin 的方式手动部署 k8s 版本: [rootmaster ~]# kubectl version Client Version: version.Info{Major:"1", Minor:&…

CentOS7安装RabbitMQ

服务器系统版本&#xff1a;CentOS7 安装RabbitMq版本&#xff1a;3.7.18 将此安装包目录下的两个文件上传到服务/usr/local/rabbitmq中备用。 安装Erlang依赖包 rpm -ivh erlang-22.0.7-1.el7.x86_64.rpm安装RabbitMQ安装包(需要联网) yum install -y rabbitmq-server-3.7.1…

yml转properties工具

目前搜索到的大部分代码都存在以下问题&#xff1a; 复杂结构解析丢失解析后顺序错乱 所以自己写了一个&#xff0c;经过不充分测试&#xff0c;基本满足使用。可以直接在线使用 在线地址 除了yml和properties互转之外&#xff0c;还可以生成代码、sql转json等&#xff0c;可…

深入解析进程

在现代计算机系统中&#xff0c;进程是一个核心概念&#xff0c;它代表了程序的执行实例。通过并发执行多个进程&#xff0c;计算机能够提高效率和资源利用率。 1. 进程的概念 进程是指在计算机系统中正在执行的程序的实例。每个进程都有自己的地址空间、寄存器集合、堆栈和文…

【Linux】OpenSSH 命令注入漏洞(CVE-2020-15778)(iptables屏蔽22端口方式)

背景 漏洞名称&#xff1a;OpenSSH 命令注入漏洞(CVE-2020-15778) 详细描述&#xff1a;OpenSSH&#xff08;OpenBSD Secure Shell&#xff09;是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现&#xff0c;支持对所有的传输进行加密&#…

java:lombok库方便的使用@Getter和@Setter

背景 Lombok是一个Java库&#xff0c;它通过注解减少了大量常规代码&#xff0c;例如getter和setter方法&#xff0c;equals&#xff0c;hashCode&#xff0c;toString等方法。使用Lombok可以减少模板代码的编写&#xff0c;使代码更简洁&#xff0c;更易于阅读和维护。 常用…

DaVinci Resolve Studio达芬奇软件 18.6.3

DaVinci Resolve Studio 18是一款专业的视频编辑和调色软件&#xff0c;适用于电影、电视节目、广告等各种视觉媒体的制作。它具有完整的后期制作功能&#xff0c;包括剪辑、调色、特效、音频处理等。 以下是DaVinci Resolve Studio 18的主要特点&#xff1a; - 提供了全面的视…

Go map类型

一、map介绍 1、map说明 map是一种无须的基于key-value的数据结构&#xff0c;Go语言中的map是引用类型&#xff0c;必须初始化才能使用Go语言中map的定义语法如下&#xff1a;map[KeyType]ValueType其中 KeyType&#xff1a;表示键的类型ValueType&#xff1a;表示键对应的值…

CAN网络出现错误帧从哪些方面去分析解决

标题&#xff1a;CAN网络出现错误帧从哪些方面去分析 实例1&#xff1a; 断电重启后&#xff0c;会有错误帧产生。 检查方案&#xff1a; 查看收发模块的初始化、使能是否在发送CAN报文之前完成&#xff1f; 实例2&#xff1a; 周期性报文&#xff0c;有时会冒出一帧错误帧&…