一、什么是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
左边下载安装的是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
标签:kotlin,配置,gradle,maven,init,build,Gradle,安装 From: https://www.cnblogs.com/fps2tao/p/17291849.html