前言

本章你将学习到

  1. Gradle的介绍
  2. Gradle的安装
  3. Gradle的hello world

1 Gradle的介绍

  • Gradle是专注于灵活性和性能的开源构建自动化工具
  • Gradle构建脚本是使用GroovyKotlin DSL 编写的
  • Gradle的优点
    • 高度可定制:Gradle以最基本的方式可定制和可扩展的方式建模
    • 快速:Gradle通过重新使用先前执行的输出,仅处理已更改的输入以及并行执行任务来快速完成任务
    • 强大:Gradle是Android的官方构建工具,并支持许多流行的语言和技术

2 Maven的安装

安装Maven主要是为了使用本地仓库,也可以不安装!

推荐使用sdkman进行安装, sdkman是开源的版本管理工具,仅支持Unix系统,包括java, gradle, maven, groovy等

sdkman的安装可以参考java多版本管理

2.1 Maven版本的查询

$ sdk list maven
================================================================================
Available Maven Versions
================================================================================
3.6.3
3.6.2
3.6.1
3.6.0
3.5.4
3.5.3
3.5.2
3.5.0
3.3.9

2.2 Maven 3.6.3的安装

$ sdk install maven 3.6.3

Downloading: maven 3.6.3

In progress...

########################################################################################### 100.0%

Installing: maven 3.6.3
Done installing! Setting maven 3.6.3 as default.

2.3 Maven的验证

$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /Users/zhouweixin/.sdkman/candidates/maven/current
Java version: 1.8.0_265, vendor: AdoptOpenJDK, runtime: /Users/zhouweixin/.sdkman/candidates/java/8.0.265.hs-adpt/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.6", arch: "x86_64", family: "mac"

3 Gradel的安装

Gradle的安装比较简单,可以到官网上下载解压,然后配置环境

Gradle安装的前提安装好java,配置好环境变量JAVA_HOME,笔者安装的java版本如下

$ java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01, mixed mode)

Gradle的下载地址:https://gradle.org/releases/

![image-20200916134217175](/Users/zhouweixin/Library/Application Support/typora-user-images/image-20200916134217175.png)

Gradle环境变量的配置

export GRADLE_HOME=解压路径
export PATH=PATH:$GRADLE_HOME/bin

下面演示用sdkman安装gradle,主要是可以简单切换java,gradle的版本

3.1 Gradle版本的查询

$ sdk list gradle
================================================================================
Available Gradle Versions
================================================================================
6.7-rc-1 5.3.1 4.1 2.4
6.6.1 5.3 4.0.2 2.3
6.6 5.2.1 4.0.1 2.2.1
6.5.1 5.2 4.0 2.2
6.5 5.1.1 3.5.1 2.1
6.4.1 5.1 3.5 2.0
6.4 5.0 3.4.1 1.12
6.3 4.10.3 3.4 1.11
6.2.2 4.10.2 3.3 1.10
6.2.1 4.10.1 3.2.1 1.9
6.2 4.10 3.2 1.8
6.1.1 4.9 3.1 1.7
6.1 4.8.1 3.0 1.6
6.0.1 4.8 2.14.1 1.5
6.0 4.7 2.14 1.4
5.6.4 4.6 2.13 1.3
5.6.3 4.5.1 2.12 1.2
5.6.2 4.5 2.11 1.1
5.6.1 4.4.1 2.10 1.0
5.6 4.4 2.9 0.9.2
5.5.1 4.3.1 2.8 0.9.1
5.5 4.3 2.7 0.9
5.4.1 4.2.1 2.6 0.8
5.4 4.2 2.5 0.7 ================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

3.2 Gralde 6.6.1的安装

$ sdk install gradle 6.6.1

Downloading: gradle 6.6.1

In progress...

########################################################################################### 100.0%

Installing: gradle 6.6.1
Done installing! Setting gradle 6.6.1 as default.

3.3 Gradle的验证

$ gradle -v

Welcome to Gradle 6.6.1!

Here are the highlights of this release:
- Experimental build configuration caching
- Built-in conventions for handling credentials
- Java compilation supports --release flag For more details see https://docs.gradle.org/6.6.1/release-notes.html ------------------------------------------------------------
Gradle 6.6.1
------------------------------------------------------------ Build time: 2020-08-25 16:29:12 UTC
Revision: f2d1fb54a951d8b11d25748e4711bec8d128d7e3 Kotlin: 1.3.72
Groovy: 2.5.12
Ant: Apache Ant(TM) version 1.10.8 compiled on May 10 2020
JVM: 1.8.0_265 (AdoptOpenJDK 25.265-b01)
OS: Mac OS X 10.15.6 x86_64

Gradle的Hello World

Gradle是由Project和Task组成的,一个Project可以包含多个Task。下面从task开始编写hello world程序。

Task的定义

首先创建脚本文件build.gradle,当执行gradle命令时, 会自动在当前目录下寻找该名称的脚本文件

build.gradle

task hello {
hello {
println 'Hello world!'
}
}

Task的执行

命令行中输入gradle hello

$ gradle hello

> Configure project :
Hello world! BUILD SUCCESSFUL in 460ms

至此通过5行代码完成了Gradle Hello World的开发。(以下是日志相关的内容,可以暂时先不看)

但是,你会发现除了打印了Hello World还打印了Gradle的一些执行过程相关的信息。这些便是Gradle的日志信息,为了打印纯粹一些Hello World可以屏蔽Gradle日志的打印。

在命令gradle hello中添加参数-q-quiet

$ gradle -q hello
Hello world!

-q或--quiet有什么含义呢?

要想弄清楚这个参数传达的含义, 首先需要了解一下日志等级, 以下是gradle定义的6个日志等级的排序, 由高到低

日志等级 功能 备注
ERROR 错误消息
QUIET 重要的信息消息
WARNING 警告消息
LIFECYCLE 进度信息消息 默认值
INFO 信息性消息
DEBUG 调试消息

做过web相关项目的应该都了解, 通常定义的日志等级有4层, 分别有Error, Warning, Info, Debug。在此基础上Gradle额外定义了2个特定的日志等级, 分别是Quiet和Lifecycle。

Gradle提供了参数设置打印的日志类型, 具体而言-q--quiet就是配置日志等级为quiet以上, 即仅打印quiet和error类型的日志

其它日志配置的参数

参数 输出日志等级
没有日志选项 LIFECYCLE 及更高
--quiet QUIET 及更高
--info INFO 及更高
--debug DEBUG 及更高

栈跟踪的参数

选项 意义
没有栈跟踪选项 只有在内部异常的情况下才打印栈跟踪
--stacktrace 输出截断的栈跟踪。我们推荐使用这一个选项而不是打印全栈的跟踪信息
--full-stacktrace 打印全栈的跟踪信息。

参考

  1. Gradle Guides
  2. Gradle 教程

Gradle实战(01)--介绍与安装的更多相关文章

  1. Mongo --01 介绍、安装、优化报警

    目录 一 . NoSQL 介绍 二.MongoDB简介 三.MongoDB特点 四. mongo应用场景 五. 安装配置mongodb 六.优化报警 一 . NoSQL 介绍 NoSQL,指的是非关系 ...

  2. LAMP架构应用实战—Apache服务介绍与安装01

    LAMP架构应用实战—Apache服务介绍与安装01   一:Apache是什么 Apache是Apache基金会开发的一个高性能.功能强大.安全可靠.灵活的开放源码的WEB服务软件 二:Apache ...

  3. 01、Scala介绍与安装

    01.Scala介绍与安装 1.1 Scala介绍 Scala是对java语言脚本化,特点是就是使不具备脚本化的java语言能够采用脚本化方式来使用,使其具有脚本语言简单.所见即所得的特点,并且编程效 ...

  4. Linux+Redis实战教程_day01_Linux介绍与安装

    1.Linux介绍(了解) 1.1.Linux和Windows的区别 Linux是一款操作系统.正规开发 服务器项目部署都是放在Linux操作系统上. Windows一款操作系统,民用操作系统.娱乐. ...

  5. Gradle实战:发布aar包到maven仓库

    查看原文:http://blog.csdn.net/u010818425/article/details/52441711 Gradle实战系列文章: <Gradle基本知识点与常用配置> ...

  6. Gradle实战:不同编译类型的包同设备共存

    查看原文:http://blog.csdn.net/u010818425/article/details/52335844 Gradle实战系列文章: <Gradle基本知识点与常用配置> ...

  7. 古语云:工欲善其事必先利其器 --> 最新、最全的 IntelliJ IDEA(2018.3.3) 的介绍、安装、破解、配置与使用

    原文:古语云:工欲善其事必先利其器 --> 最新.最全的 IntelliJ IDEA(2018.3.3) 的介绍.安装.破解.配置与使用 一.IntelliJ IDEA 介绍 -> Ecl ...

  8. Node.js 教程 01 - 简介、安装及配置

    系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...

  9. maven实战(01)_搭建开发环境

    一 下载maven 在maven官网上可下载maven:http://maven.apache.org/download.cgi 下载好后,解压.我的解压到了:D:\maven\apache-mave ...

随机推荐

  1. 图论算法(一)存图与STL第六弹——vector容器

    图论算法(一)存图 我发现我的博客阅读量贼低,问小伙伴们,ta们都说这些博客太长了QAQ! 今天来个短亿点的(也短不了多少……) 进入正题,图论究竟是什么? 图论就是给你一张图,让你在这张图上进行各种 ...

  2. golang 递归自己,输出自己的源代码

    问题: [2min 大家自己想想] 一个程序P运行后能否输出自己的源代码?并且格式保持一致(换行.空格等) 思考: 这个问题的本质是一个递归问题,设有P运行后生成G 既P->G &&am ...

  3. MySQL是如何实现事务的ACID

    前言 最近在面试,有被问到,MySQL的InnoDB引擎是如何实现事务的,又或者说是如何实现ACID这几个特性的,当时没有答好,所以自己总结出来,记录一下. 事务的四大特性ACID 事务的四大特性AC ...

  4. 编译原理LR(0)项目集规范族的构造详解

    转载于https://blog.csdn.net/johan_joe_king/article/details/79051993#comments 学编译原理的时候,感觉什么LL(1).LR(0).S ...

  5. C++ Templates (Part I 基本概念 The Basics)

    C++ 模板 (C++ Templates) 目录 C++ 模板 (C++ Templates) 第一部分 基本概念 (The Basics) 第一部分章节目录 参考资料 第一部分 基本概念 (The ...

  6. 第3章 SparkSQL解析

    第3章 SparkSQL解析 3.1 新的起始点SparkSession 在老的版本中,SparkSQL提供两种SQL查询起始点,一个叫SQLContext,用于Spark自己提供的SQL查询,一个叫 ...

  7. 百钱百鸡小游戏PHP代码

    <?php // 计算小鸡的数量 $count=[]; // 第一个for循环计算公鸡 for ($gj=1;$gj<(100/5);$gj++){ // 第二个for循环计算母鸡 for ...

  8. 个人项目(WordCount C语言)

    WordCount程序(C语言) Github地址:https://github.com/peter-ye-code/WordCount 一.题目描述 实现一个简单而完整的软件工具(源程序特征统计程序 ...

  9. 软件工程第二次作业(Junit和GoogleTest)

    使用Eclipse的Junit框架进行单元测试 一.前言 我的电脑因为以前学过安卓开发,已经安装好了eclipse,看了邹欣老师的博客,博客上讲的的非常详细,所以在进行的过程中遇到困难,基本都能解决. ...

  10. IDEA实用插件推荐及使用方法详解

    当前使用的IDEA版本是2020.1.随着IDEA版本的升级,有些插件不再支持,而有些插件变成了收费插件,这些插件将不再推荐.以下列举的,都是亲测可以在2020.1版本的IDEA中使用的插件. Tra ...