简单Gradle 的安装与配置

发布时间 2023-04-06 10:28:38作者: 与f

一、什么是Gradle


基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,基于Groovy这个特定DSL语言来进行声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL。

简介:Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

 

特点:

①可切换的,像maven一样的基于约定的构建框架(约定优于配置)。

②多工程。

③依赖管理(基于Apache Ivy)。

④支持已有的Maven或者Ivy仓库。

⑤支持传递性依赖管理,不需要使用pom.xml和ivy配置文件。

 

二、下载安装 Gradle,并配置环境

前提:下载安装好JDK

2.1、下载 Gradle

Gradle官网下载地址

 

 

左边下载安装的是bin版,仅包含二进制。如果你使用IDEA的话,它会推荐下载all版,包含源代码,这样IDEA就可以分析源代码,提供更加精确的gradle脚本支持。

解压到之后目录后即可。

2.2、环境变量配置

操作1:新增系统环境变量GRADLE_USER_HOME和GRADLE_HOME。

GRADLE_HOME

 

 

GRADLE_USER_HOME

 

 

操作2:在Path参数下新增%GRADLE_HOME%\bin。

操作3:gradle配置仓库

GRADLE_USER_HOME变量的值是本地仓库目录用来保存gradle下载的依赖包。

全局远程仓库配置:在解压的文件夹E:\gradle\gradle-7.2.1\init.d中新建文件init.gradle(下文有个介绍),填充以下内容

allprojects{
    repositories {
        maven{ 
        allowInsecureProtocol =true
        url= 'https://maven.aliyun.com/repository/public'
    
        }
    
        def REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
        //做一些国外不稳定的地址连接的替换
        all {
            ArtifactRepository repo ->
    if (repo instanceof MavenArtifactRepository) {
                def url = repo.url.toString()
                if (url.startsWith('https://artifacts.elastic.co/maven')
                ||url.startsWith('https://repo1.maven.org/maven2') 
                || url.startsWith('https://repo.maven.org/maven2') 
                || url.startsWith('https://jcenter.bintray.com/')
                ||url.startsWith('https://repo.maven.apache.org/maven2')
                ) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
                    remove repo
                }
            }
        }
    }
}

项目级别远程仓库配置:在每个gradle构建的项目中 的build.gradle文件中新增配置

repositories {
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
mavenCentral()
}

2.3、检查安装配置是否成功

打开命令指示符窗口,执行gradle -version。有一些输出。

 

 

三、idea 配置 Gradle

Gradle user home : 就是环境变量中配置的 GRADLE_USER_HOME 地址

 

 

四、init.gradle介绍

init.gradle文件在build开始之前执行,所以你可以在这个文件配置一些你想预先加载的操作,例如配置build日志输出、配置你的机器信息,比如jdk安装目录,配置在build时的账户鉴权信息(比如仓库或者数据库的认证信息)等等

启用init.gradle文件的方法:

1、在命令行指定文件,例如:gradle –init-script yourdir/init.gradle -q taskName你可以多次输入此命令来指定多个init文件。

2、把以.gradle文件放到USER_HOME/.gradle/目录下。例如init.gradle文件。

3、把以.gradle结尾的文件放到USER_HOME/.gradle/init.d/目录下。例如init.gradle文件。

4、把以.gradle结尾的文件放到GRADLE_HOME/init.d/目录下。例如init.gradle文件。

如果存在上面的4种方式的2种以上,gradle会按上面的1-4序号依次执行这些文件,如果给定目录下存在多个init脚本(.gradle文件),会按拼音a-z顺序执行。

四、gradle 的目录结构

gradle 项目默认目录和 maven 项目目录结构一致,都是基于约定大于配置(Convention Over Configuration),其完整的项目目录结构如下:

 

 

提示:

1、只有war工程才有webapp目录,对于普通的jar工程并没有webapp目录。

2、gradlelew 与 gradle.bat 执行的指定wrapper版本中的gradle指定,不是本地安装的gradle指令。

 

五、Gradle 中的常用指令

 

Gradle常用指令作用
gradle clean 清空build目录
gradle classed 编译业务代码和配置文件
gradle test 编译测试代码,生成测试报告
gradle buid 构建项目
gradle build -x test 跳过测试构建

 

 

注意:gradle 的指令要在含有build.gradle的目录执行。

 

5.1、查看项目的任务依赖

要查看项目的依赖关系图,我们可以运行以下命令:

$ gradle dependencies
......省略部分输出.......
kaptTestRelease
\--- org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.2.51
     +--- org.jetbrains.kotlin:kotlin-stdlib:1.2.51
     |    +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.2.51
     |    \--- org.jetbrains:annotations:13.0
     \--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.2.51
          +--- org.jetbrains.kotlin:kotlin-stdlib:1.2.51 (*)
          \--- org.jetbrains.kotlin:kotlin-script-runtime:1.2.51
 
lintChecks - Configuration to apply external lint check jar
No dependencies
......省略部分输出.......

Tips:上面我们运行的命令输出的是整个项目的依赖,有时候我们只需要查查看当前 module 的依赖,那么我们怎么查查看呢?如下,我们输入gradle [module_name]:dependencies,例如我们想要查看 app 模块的依赖,我们可以执行如下命令:

//查看APP模块的依赖
$ gradle app:dependencies

5.2、排除某些任务

前面我么讲了 Gradle 的任务,我们可以用-x选项去排除一个任务。我们在build.gradle中定义的task mTest,我们如果想要跳过mTest,可以用以下的命令:

//buid.gradle中定义的Task,mTest
task mTest{
    doLast{
        println "这是测试Task"
    }
}
 
//在控制台执行命令排除
$ gradle clean build -x mTest

5.3、查看 Gradle 的 Task

我们在开发过程中有时候难免会要查看 Gradle 构建有哪些任务,那么我们就可以使用下面的命令来查看:

$ gradle task
 
> Task :tasks
 
------------------------------------------------------------
Tasks runnable from root project
------------------------------------------------------------
 
Android tasks
-------------
androidDependencies - Displays the Android dependencies of the project.
signingReport - Displays the signing info for the base and test modules
sourceSets - Prints out all the source sets defined in this project.
 
Build tasks
-----------
assemble - Assemble main outputs for all the variants.
assembleAndroidTest - Assembles all the Test applications.
build - Assembles and tests this project.
.........省略部分任务..............
 
Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.
 
Cleanup tasks
-------------
lintFix - Runs lint on all variants and applies any safe suggestions to the source code.
.........省略部分任务..............
 

我们可以看到这个命令执行后会输出输出各种任务。

 

Tips: 我们看到这个很多,其实该命令输出的不是所有的命令,要查看项目构建的所有命令,我们需要执行的时候 后面加上 --all如下:

$ gradle task -all

 

 

转 : https://blog.csdn.net/KevinChen2019/article/details/126683988