Gradle 入门

>>强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!

    Gradle是一个开源的自动化构建工具。Gradle构建脚本是使用groovy或kotlin DSL编写的,功能强大的Gradle是android官方构建工具。也可以通过终端中的命令行界面或通过持续集成服务器调用Gradle。

Gradle 入门1.1 Mac搭建gradle构建环境1.2 第一个gradle task    1.2.1 命令和build.gradle的文件内容1.3 android项目中的gradle    1.3.1 Gradle wrapper 文件内容1.4 自定义Wrapper Task1.5 Gradle日志    1.5.1日志级别    1.5.2 输出错误堆栈信息1.6 Gradle命令行

1.1 Mac搭建gradle构建环境

  • 先到Gradle官网 http://gradle.org/ 下载某个Gradle版本

  • 编辑~/.bash_profile文件添加一下文件内容(配置环境变量):

GRADLE_HOME=/Users/lin/Desktop/gradle/gradle-4.4
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin

添加后保存,然后在终端输入source ~/.bash_profile回车执行让刚才的配置生效。如果要让所有的用户都生效,需重启电脑。

  • 终端输入gradle -v,如果能显示正确的gradle版本号,Groovy版本号,JVM等相关信息,则配置成功。

1.2 第一个gradle task

  • 新建一个文件夹,然后再文件夹下面创建build.gradle,创建的内容为:

task hello{
   println 'Hello jackie,this is you first task.'
}
  • 打开终端,进入到之前创建的文件夹,输入 gradle -q hello 命令来执行构建脚本。

  • 终端输出 Hello jackie,this is you first task.

1.2.1 命令和build.gradle的文件内容

gradle -q hello 意思是要执行build.gradle脚本中定义的名为hello的task,-q参数用控制gradle输出的日志级别,哪些日志可以被输出,类似安卓中的logcat的日志输出级别(-v,-d,-i,-w,-e,-a)。

task表示一个任务,hello是任务名。而println 'Hello jackie,this is you first task.' 在Groovy中已经把println()方法添加到java.lang.Object中,而且方法的调用可以省略签名中的括号,用空格分开,所以就有了上面的写法,而且在Groovy中单引号和双引号所包含的内容都是字符串。

1.3 android项目中的gradle

在Android studio中创建的项目都会生成下面这个结构和内容

Gradle 入门

Wrapper实际上就是对Gradle的一层包装,便于开发团队统一gradle的构建版本,避免因为版本不统一带来的不必要的问题。

Gradle提供类内置的wrapper task帮助我们自动生成wrapper所需的目录文件,在一个项目根目录,输入gradle wrapper即可生成。

Gradle 入门

这个实际上就是上面那张图的文件内容。

1.3.1 Gradle wrapper 文件内容

gradlew和gradlew.bat分别是Linux和Windows下的可执行脚本,用法和gradle原生命令是一样的。gradle-wrapper.jar是具体业务逻辑实现的jar包,gradlew最终还是使用java执行这个jar包来执行相关gradle操作。gradlew-wrapper.propertities是配置文件,用于配置使用哪个版本的gradle等。

1.4 自定义Wrapper Task

前面提到,gradle-wrapper.properties是由wrapper task生成的,所以我们也可以自定义配置该Wrapper task来达到我们配置gradle-wrapper.properties的目的,可以在我们的build.gradle构建文件中输入:

Gradle 入门

这样我们再执行gradle wrapper的时候,就自定义我们自己想要的版本。

1.5 Gradle日志

1.5.1日志级别

  • ERROR  错误消息

  • QUIET    重要消息

  • WARRNING 警告消息

  • LIFECYCLE 进度消息

  • INFO     信息消息

  • DEBUG 调试信息


    输出QUIET级别及其之上日志信息gradle -q tasks

1.5.2 输出错误堆栈信息

我们在使用gradle构建的时候,难免会有问题导致构建失败,所以我们需要根据日志分析解决问题,可以根据gradle提供的堆栈打印来帮助我们分析问题。默认情况下堆栈信息输出是关闭的,所以我们需要通过命令行的堆栈信息开关打开它,

Gradle 入门

也可以用内置的logger更灵活的输出内容(其实是调用Project的getLogger()方法获取的Logger实例):

Gradle 入门

1.6 Gradle命令行

以Gradle Wrapper为例:

  • 使用帮助

./gradlew -?
./gradlew -h
./gradlew --help
  • 查看所有可执行的task

./gradlew tasks
  • gradle help任务

./gradlew help --task <task name>
  • 强制刷新依赖

gradlew --refresh-dependencies assemble
  • 多任务调用

    按顺序以空格分开,比如 .gradlew clean jar

  • 通过任务名字缩写执行

    Gradle提供了基于驼峰命名法的缩写调用

    ./gradlew connectCheck,也可以使用./gradlew cc这样的方式来执行


原文始发于微信公众号(九局下半大逆转):Gradle 入门