Menu Close

Linux下安装并配置Gradle

1. 安装环境及先决条件

1.1. 安装环境介绍

  • 操作系统版本:
    CentOS Linux release 7.8.2003 (Core)

  • Java版本:
    java version "1.8.0_161"
    Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

1.2. 先决条件

Gradle可以运行在大多数的操作系统上,例如Linux、MAC、Windows,并且操作系统上要安装Java JDK或JRE版本8或者以上的版本。

如果配置完成请再继续往下做,否则请先配置好JDK环境。
JDK地址:https://www.oracle.com/java/technologies/javase-downloads.html

2. 下载Gradle安装包

从Gradle官网下载最合适您的版本:https://gradle.org/releases/

file

我们选择手动安装,下载了一个完整版本(包含文件与资料),文件名为:gradle-7.5-all.zip

3. 安装并配置

3.1. 将安装包解压到合适的位置

示例:将gradle安装包解压到 /data 目录:

unzip gradle-7.5-all.zip -d /data

3.2. 配置环境变量

  • 编辑 /etc/profile 文件,在文件末尾增加如下内容

    export GRADLE_HOME=/data/gradle-7.5  # 该路径要包含gradle的bin目录
    export PATH=${GRADLE_HOME}/bin:$PATH
  • 重新加载,使之生效

    source /etc/profile
    echo $GRADLE_HOME

3.3. 验证是否成功

~]# gradle --version

Welcome to Gradle 7.5!

Here are the highlights of this release:
 - Support for Java 18
 - Support for building with Groovy 4
 - Much more responsive continuous builds
 - Improved diagnostics for dependency resolution

For more details see https://docs.gradle.org/7.5/release-notes.html

------------------------------------------------------------
Gradle 7.5
------------------------------------------------------------

Build time:   2022-07-14 12:48:15 UTC
Revision:     c7db7b958189ad2b0c1472b6fe663e6d654a5103

Kotlin:       1.6.21
Groovy:       3.0.10
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          1.8.0_161 (Oracle Corporation 25.161-b12)
OS:           Linux 3.10.0-1160.53.1.el7.x86_64 amd64

如果出现上面的版本信息,说明成功了,如果没出现请返回前面的,查看检查一下自己的步骤是否存在问题.

3.4. Gradle命令

gradle -v                  //版本号
gradle clean               //清除build文件夹
gradle build               //检查依赖并打包
gradle assembleDebug       //编译打包Debug包
gradle assembleRelease     //编译打包Release包
gradle installRelease      //打包并安装Release包
gradle unstallRelease      //卸载Release包
gradle dependencies        //查看依赖图表
gradle clean build -x test //跳过测试编译
gradle --profile build     //分析构建任务
gradle build --dry-run     //编译并不执行任务
gradle install             //安置项目jar包到本地Maven仓库
gradle tasks               //查看Gradle任务
gradle tasks --all         //查看所有Gradle任务
gradle build --daemon      //使用Gradle守护程序(Daemon)
gradle build --offline     //用离线模式运行
gradle clean build --refresh-dependencies     //刷新Gradle依赖缓存

3.5. Gradle项目目录结构与Maven项目目录结构对比

file

说明:

  • 只有war工程才有webapp目录,对于普通的jar工程并没有webapp目录
  • gradlewgradlew.bat 执行的指定 wrapper 版本中的 gradle 指令,不是本地安装的gradle指令。如下图所示:
    file

3.6. Wrapper 包装器

Gradle Wrapper 实际上就是对 Gradle 的一层包装,用于解决实际开发中可能会遇到的不同的项目需要不同版本的 Gradle 问题。例如:把自己的代码共享给其他人使用,可能出现如下情况:

  • 对方电脑没有安装 Gradle
  • 对方电脑安装过 Gradle,但是版本太旧

这时候就可以考虑使用 Gradle Wrapper 了,这也是官方建议使用Gradle Wrapper的原因。实际上有了 Gradle Wrapper 之后,本地是可以不配置 Gradle 的,下载 Gradle 项目后,使用 gradle 项目自带的 wrapper 操作也是可以的。

4. 用Gradle创建普通java项目

4.1. 创建工程

file

file

注意:点击完成后,idea会自动去下载Gradle,我们点击右边的取消按钮,将下载取消,配置我们自己下载的Gradle版本。

4.2. 更改三个Gradle设置

Gradle user home:我们在安装Gradle时指定的环境变量 GRADLE_USER_HOME 的值。

  • 如果没有新建.gradle这个目录,这里的默认值为 /root/.gradle
  • 如果新建.gradle这个目录,但没有设置环境变量,以后每次用Gradle构建工程,都要手动修改此处的值
  • 如果新建.gradle这个目录并设置了环境变量 GRADLE_USER_HOME,idea就能自动探测此处Gradle user home的值了

gradle user home :下载文件的路径

user gradle from :选择本地的gradle路径

gradle jvm:选择本地jdk

file

4.3. gradle镜像源配置

  • 项目配置
repositories {
    // 阿里云镜像
    maven { url 'https://maven.aliyun.com/repository/public/' }
    mavenCentral()
}

file

  • 全局配置
    在gradle的安装目录的 init.d 目录下(例如:/data/gradle-7.5/init.d)创建 init.gradle 文件,其内容如下:
allprojects{
    repositories {
        def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
        def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter/'
        def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google/'
        def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                    remove repo
                }
                if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
                    remove repo
                }
                if (url.startsWith('https://plugins.gradle.org/m2/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
                    remove repo
                }
            }
        }
        maven { url ALIYUN_REPOSITORY_URL }
        maven { url ALIYUN_JCENTER_URL }
        maven { url ALIYUN_GOOGLE_URL }
        maven { url ALIYUN_GRADLE_PLUGIN_URL }
    }

}

4.4. 找回缺失的src目录

创建工程后,发现没有src目录,按下图设置即可:

// 创建缺失的src目录
task createDirs {
    sourceSets*.java.srcDirs*.each{
        it.mkdirs()
    }
    sourceSets*.resources.srcDirs*.each{
        it.mkdirs()
    }
}

file

file

4.5. 项目运行

src/main/java 目录下新建一个包,再建一个类

file