第四天:在 Linux 上安装 Gradle

接下来要跟大家谈谈如何在三大主流作业系统上安装 Gradle,读者可以依据自己习惯使用的作业系统跟着文章里的步骤把环境装起来。首先我们从 Linux 作业系统开始:

环境需求

在文章撰写的当下,Gradle 的最新版本为 7.2,在这个系列里都会用这个版本做示范。Gradle 本身是用 Java/Groovy 写的,因此执行环境里需要 JDK。请先检查一下作业系统里是否有 JDK:

$ java -version

安装 SDKMAN

若作业系统里还没有 JDK,那我会推荐大家使用 SDKMAN 来安装 JDK,後续还可以再用它安装 Gradle,两个愿望一次满足!

SDKMAN 是一个 SDK 管理器,可以协助我们安装几乎所有 JVM 开发者会需要用到的 SDK,像是 JDK、Kotlin Compiler、Gradle…等,若有更新时还可以一键下载,需要安装多个不同版本的 JDK 也没问题,可以透过指令去切换环境里的 JDK,甚至还可以帮我们更新 PATH 设定,非常方便!

安装 SDKMAN 很简单,只要将官网上的指令贴在终端机并执行即可:

$ curl -s "https://get.sdkman.io" | bash

SDKMAN 是用 Bash Script 实作,没有相依其他工具,安装起来完全无痛。安装好後重新载入就可以用 $ sdk version 指令来验证安装是否成功。

用 SDKMAN 安装 JDK

紧接着安装 JDK,首先要取得 SDKMAN 可安装 JDK 的 Identifier,先用 list 指令查询:

$ sdk list java # 取得所有 JDK 清单
================================================================================
Available Java Versions
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 AdoptOpenJDK  |     | 16.0.1.hs    | adpt    |            | 16.0.1.hs-adpt
               |     | 11.0.11.hs   | adpt    |            | 11.0.11.hs-adpt
               |     | 8.0.292.hs   | adpt    |            | 8.0.292.hs-adpt
 Corretto      |     | 16.0.2.7.1   | amzn    |            | 16.0.2.7.1-amzn
               |     | 11.0.12.7.1  | amzn    |            | 11.0.12.7.1-amzn
               |     | 8.302.08.1   | amzn    |            | 8.302.08.1-amzn
 GraalVM       |     | 21.2.0.r16   | grl     |            | 21.2.0.r16-grl
               |     | 21.2.0.r11   | grl     |            | 21.2.0.r11-grl
               |     | 21.2.0.r8    | grl     |            | 21.2.0.r8-grl
# 为节省版面部份输出已被精简

从上面的画面可以看到,每一个版本对应到的 Identifier 都不一样。假设我想安装 AdoptOpenJDK16.0.1.hs 这个版本,对应到的 Identifier 就是 16.0.1.hs-adpt。把这个字串记下来,再用 install 指令安装:

$ sdk install java 16.0.1.hs-adpt

SDKMAN 就会到网路上把 AdoptOpenJDK 16.0.1.hs 抓下来安装,也会将这个版本的 JDK 做为系统预设 Shell 环境的 JDK。若之後有需要也可以用 use 指令来切换 JDK 版本:

$ sdk use java java 16.0.1.hs-adpt

用 SDKMAN 安装 Gradle

安装好 JDK 後的下一步就来装 Gradle,一样先用 list 指令查询 Gradle 各版本的 Identifier:

$ sdk list gradle # 取得 Gradle 版本清单
================================================================================
Available Gradle Versions
================================================================================
     7.2                 6.1                 4.5.1               2.8
     7.2-rc-3            6.0.1               4.5                 2.7
     7.2-rc-2            6.0                 4.4.1               2.6
     7.2-rc-1            5.6.4               4.4                 2.5
     7.1.1               5.6.3               4.3.1               2.4
     7.1                 5.6.2               4.3                 2.3
     7.0.2               5.6.1               4.2.1               2.2.1
     7.0.1               5.6                 4.2                 2.2
     7.0                 5.5.1               4.1                 2.1
# 为节省版面部份输出已被精简

我们要装的版本是 7.2,使用 install 指令进行安装:

$ sdk install gradle 7.2

安装好後重新载入就可以用 $ gradle --version 指令来验证安装是否成功:

------------------------------------------------------------
Gradle 7.2
------------------------------------------------------------

Build time:   2021-08-17 09:59:03 UTC
Revision:     a773786b58bb28710e3dc96c4d1a7063628952ad

Kotlin:       1.5.21
Groovy:       3.0.8
Ant:          Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM:          16.0.1 (AdoptOpenJDK 16.0.1+9)
OS:           Linux 5.10.16.3-microsoft-standard-WSL2 amd64

Gradle 会把系统里各个工具的版本资讯都列出来供我们确认,若能看到这个画面就表示安装成功罗!

适用情境

假如您习惯使用 Linux 作业系统(比方说 Ubuntu)做开发机,因开发需求需要安装多个版本的 JDK,不排斥在工作机上安装 SDK 管理工具的话,这个方式就很适合您!假如您希望可以隔离各种开发环境,或是您只是因为要维护现有专案,那您可以参考之後会提到的 Docker 或 Gradle Wrapper 等安装方式。

参考资料


<<:  铁人赛 Day9-- PHP SQL基本语法(四) -- SELECT 到底在SELECT什麽 & WHERE 基本语法

>>:  Day8 手牵手一步两步三步四步望着天 看星星一颗两颗三颗四颗连成线

JavaScript Day19 - AJAX(1)

AJAX AJAX(Asynchronous JavaScript And XML):使用非同步资料...

Day 29 部署 package

注册帐号 首先要注册 npm 帐号 注册页面 注册完後,登入你的帐号 npm login 成功後会显...

Day13:13 - 购物车服务(1) - 後端 - 购物车总商品显示、加入购物车API

హలో,我是Charlie! 在Day12当中,我们完成了商品详情显示的API,而今天我们将完成後端...

[Day 11] 资料产品生命周期管理-原始资料

不同类型的资料产品在其各自专案周期有需要注意的地方,以下我们将说明在处理原始资料时,各阶段应该做的事...

Day 28 [整理03] JavaScript类数组

甚麽是类数组 先来打造一个很酷的数组 let obj = { '0': 'a', '1': 'b',...