一、Gradle 手动创建一个项目

news/2024/5/20 5:08:04 标签: gradle, wrapper, build

文章目录

  • 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.niftyadmin.cn/n/5227464.html

相关文章

【寒武纪(6)】MLU推理加速引擎MagicMind,最佳实践(一)

文章目录 MagicMind 依赖 示例C 编程模型sample_ops/sample_add 算子操作 混合精度部署多模型部署单模型多实例部署多卡部署 最佳实践1、性能指标吞吐率延时工具 mm_run性能优化 2内存工具Profiler工具3性能和精度差异说明 MagicMind 依赖 MM 是将训练好的模型转换成统一计算图…

GENERO 2.5语法

1、显示 DISPLAY 程序变量 TO 画面栏位 DISPLAY BY NAME 程序变量 2、录入 INPUT 程序变量 FROM 画面栏位 INPUT BY NAME 程序变量 3、查询 CONSTRUCT BY NAME char_variable ON column_list CONSTRUCT char_variable ON column_list FROM field_list 4、prepare PREPAR…

VMware虚拟机安装和使用教程(附最新安装包+以ubuntu为例子讲解)

目录 一、VMware Workstation 17 Pro 简介 二、新功能与改进 三、安装教程 3.1、下载安装包 3.2、运行安装包 四、创建虚拟机 五、启动虚拟机 六、总结与展望 一、VMware Workstation 17 Pro 简介 VMware Workstation 17 Pro是VMware公司为专业用户打造的一款虚拟化软件…

rocketmq 集群环境部署及与spring cloud 集成

1 下载zip 安装包 rocketmq-all-5.1.4-bin-release.zip 2 修改启动配置,防止默认内存配置过高 runserver.sh/runbroker.sh/tools.sh 3 启动namesrv nohup sh bin/mqnamesrv >>namesrv.log & 4 启动brokerproxy 单点模式: nohup sh bin…

人工智能原理复习--知识表示(二)

文章目录 上一篇产生式表示法推理方式 结构化表示语义网络语义网络表示知识的方法和步骤应用题目 框架表示法下一篇 上一篇 人工智能原理复习–知识表示(一) 产生式表示法 把推理和行为的过程用产生式规则表示,所以又称基于规则的系统。 产…

SpringBoot——Swagger2 接口规范

优质博文:IT-BLOG-CN 如今,REST和微服务已经有了很大的发展势头。但是,REST规范中并没有提供一种规范来编写我们的对外REST接口API文档。每个人都在用自己的方式记录api文档,因此没有一种标准规范能够让我们很容易的理解和使用该…

抖音、快手、新东方来袭,旅游行业战火再起?

低调了许久的旅游行业,终于迎来了大复苏,旅客的出游热情也再度被点燃,出游人数呈现出不断攀升态势。以“十一”黄金周为例,据文化和旅游部数据中心统计,本次黄金周,国内旅游出游人数8.26亿人次,…

redis哨兵模式的功能-以及主从选举算法

对于哨兵模式而言,主要负责的内容有 1、监控 2、选主(选择主库) 3、通知哨兵工作流程: 1、监控:节点发现和配置 2、心跳检测: 哨兵会定期向监控的节点发送PING命令来检测节点是否存活 3、节点状态变更&am…