Gradle 学习之入门知识(一)

news/2024/5/20 4:12:25 标签: gradle, android, 自动化构建, Groovy, 基础入门

目录

  • 一、什么是 Gradle
  • 二、搭建 Gradle 环境(以 Mac OS 为例)
  • 三、Gradle 版“Hello World”
  • 四、“Hello World” 小解析

一、什么是 Gradle

  1. 官网:https://gradle.org/
  2. 官网介绍:从官网的介绍中,我们不难得知——Gradle 是一个自动化构建工具,可以帮助我们更便捷地构建我们的项目

From mobile apps to microservices, from small startups to big enterprises, Gradle helps teams build, automate and deliver better software, faster.

二、搭建 Gradle 环境(以 Mac OS 为例)

  1. JDK 环境:1.8+
  2. 使用 Homebrew 安装 Gradle brew install gradle
  3. Q&A:
    1.)安装工具:
    Homebrew 是一款 Mac OS 平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,不用用户关心各种依赖和文件路径的情况,十分方便快捷。
    2.)报错解决:
    根本原因: Bintray 要关闭了, 所以 Homebrew 的压缩之后就没再往Bintray 那边传了, 而新版的 Homebrew 已经去除了 Bintray 相关,使用 ghcr.io 服务了。
    直接原因: 我自己因为网络的原因,使用了国内的镜像,但是国内的镜像是依然指向 Bintray 的, 所以才会出现无法打开压缩包的错误。
    解决方法: 不使用国内的源
    参考资料: https://zhuanlan.zhihu.com/p/383707713
    错误
  4. 安装成功
    安装成功

三、Gradle 版“Hello World”

  • 新建目录:xxx/Gradle/project/hello
  • hello 文件夹下,新建一个 build.gradle 的文件
  • build.gradle 里面写上如下代码:
task hello{
    doLast{
        println "Hello World"
    }
}
  • 使用命令行进入该文件夹,执行命令 gradle -q hello
  • 结果:输出 “Hello World” 字符串,并且目录下生成了一个 .gradle 文件夹,里面有一系列文件(暂时不管,以后学习)
    在这里插入图片描述

四、“Hello World” 小解析

  1. 为什么新建的文件叫 build.gradle,叫其他名称是否可以?
    答:build.gradle 是 Gradle 默认的构建脚本文件,执行 gradle -q xxx 命令的时候,会默认加载当前目录下的 build.gradle 脚本文件。当然,可以叫其他的名称,但是执行的时候需要通过 -b 参数指定想要执行的文件
    gradle -q -b test.gradle hello
task hello{
    doLast{
        println "Hello World! This is test.gradle"
    }
}

test.<a class=gradle" />

  1. 代码含义:
task hello{ // 定义了一个任务,任务的名称为 hello
	// 给任务添加了一个动作(Action)
	// doLast 是指在任务执行完后,回调 doLast 闭包里面的代码
    doLast{
        println "Hello World"
    }
}
  1. 命令 gradle -q hello 中 -q 的含义:-q 参数用于控制 Gradle 输出的日志级别
级别用处
ERROR错误
QUIET重要
WARNING警告
LIFECYCLE进度
INFO信息
DEBUG调试
开关选项输出的日志级别
无选项LIFECYCLE 及以上
-q 或 --quietQUIET 及以上
-i 或 --infoINFO 及以上
-d 活 --debugDEBUG 及以上,指定该级别一般会输出所有日志
  1. 日志打印测试 gradle -d -b logTest.gradle LogTest
task LogTest{
    doLast{
    	// print 系列方法,定向为 QUIET 级别的日志
        println "Hello World!"
        // 使用内置的 logger
        logger.error("error 日志信息")
        logger.quiet("quiet 日志信息")
        logger.warn("warning 日志信息")
        logger.lifecycle("lifecycle 日志信息")
        logger.info("info 日志信息")
        logger.debug("debug 日志信息")
    }
}

日志打印测试

  1. 堆栈信息打印
命令行选项作用
无选项不输出堆栈信息(默认情况)
-s 或 --stacktrace输出关键性的堆栈信息(建议使用,比较精简)
-S 或 --full-stacktrace输出全部堆栈信息

整理学习自飞雪无情大佬的《Android Gradle 权威指南》和互联网资料


http://www.niftyadmin.cn/n/1252355.html

相关文章

闭包和this指向

闭包的概念 1、简单理解就是内层函数可以访问外层函数中的变量 2、有时候需要用到函数内的局部变量&#xff0c;在正常情况下是不能读取到的&#xff0c;这个时候就需要用到闭包 闭包应用的特殊情况 1、函数作为参数被传递 2、函数作为返回值被返回 1、函数作为参数被传递 …

Gradle 学习之入门知识(二)

Gradle 7.0.2 目录Gradle 7.0.2一、Gradle Wrapper1. 什么是 Gradle Wrapper2. 如何生成一个 Gradle Wrapper 所需的目录文件3. gradle-wrapper.properties4. 如何使用 Gradle Wrapper 下载 Gradle5. 通过自己写的 Task 来生成 Gradle Wrapper二、Gradle Wrapper 的一些命令1. …

js的数据类型、堆栈内存

数据类型 基本数据类型(值类型)&#xff1a; Number(数字)、String(字符串)、Boolean(布尔值)、Undefined(未定义)、Null(空)、Symbol(es6新增独一无二的值)和BigI(i)nt(es10新增) 引用数据类型&#xff1a; Object(对象)。包含Object(对象)、Array(数组)、function(函数、Dat…

这么骚的 js 代码,不怕被揍么

布拉德特皮https://juejin.im/post/5e044eb5f265da33b50748c8前言曾经&#xff0c;我接手了一份大佬的代码&#xff0c;里面充满了各种“骚操作”&#xff0c;还不加注释那种&#xff0c;短短几行的函数花了很久才弄懂。正文位运算JavaScript 中最臭名昭著的 Bug 就是 0.1 0.2…

Gradle 学习之 Groovy 基础

一、什么是 Groovy 1. 官网&#xff1a; http://www.groovy-lang.org/ 2. 概念&#xff1a; 是基于 JVM 虚拟机的一种动态语言&#xff0c;语法上和 Java 非常相似&#xff0c;完全兼容 Java&#xff0c;可以说是一门非常灵活的动态脚本语言 3. 应用&#xff1a; Gradle …

20 分钟就被淘汰的高级前端工程师

最近面了一个4 年经验的前端开发&#xff0c; 应聘的是前端高级开发工程师。他的简历中提到很多技术点&#xff0c;从 HTML、CSS、JavaScript 再到 Vue.js 和 React 一个都不缺&#xff0c;跨平台PC、移动端、小程序也都经历过&#xff0c;看着像个实战派。深度聊了聊&#xff…

Gradle 学习之基础项目脚本

目录一、settings.gradle 文件二、build.gradle 文件三、项目与任务四、书写 Gradle 脚本代码的本质一、settings.gradle 文件 作用&#xff1a; 作为项目的设置文件&#xff0c;用于项目初始化以及多工程&#xff08;子工程&#xff09;的配置默认名称&#xff1a; settings.…

递归手写深拷贝

前言 深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。 1. 堆栈内存 具体看另一篇博客js的数据类型、堆栈内存 浅拷贝与深拷贝 深拷贝和浅拷贝的示意图大致如下&#xff1a; 浅拷贝只复制指向某个对象的指针&#xff0c;而不复制对象本身&#xff0c;新旧对象还…