日志

Gradle实战(01)--介绍与安装

 来源    2020-09-17    1  

前言

本章你将学习到

  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 教程
相关文章
MySQL—01—MySQL介绍和安装
日志一. MySQL 简介 1 什么是 MySQL MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司.MySQL 是一种关系型数据库管理系统,关系型 ...
Gradle的介绍与安装
日志Gradle简介 Gradle是一款致力于自动化构建和对多种开发语言的支持的构建工具.如果你想在任意开发平台上构建.测试.发布和部署软件,那么Gradle提供了一个非常灵活的模型,可以支持整个开发生命 ...
Maven实战 仓库介绍和Nexus的安装
日志在Maven中我们之前进行配置一个项目的依赖时,引用一下jar包,这些jar包第一次都会从一个地方进行下载,这个地方称为仓库,而对于仓库一般有本地仓库和中心仓库之分,但是我们一般在做项目时会在自己的服 ...
1
大数据技术之_13_Azkaban学习_Azkaban(阿兹卡班)介绍 + Azkaban 安装部署 + Azkaban 实战
日志一 概述1.1 为什么需要工作流调度系统1.2 常见工作流调度系统1.3 各种调度工具特性对比1.4 Azkaban 与 Oozie 对比二 Azkaban(阿兹卡班) 介绍三 Azkaban 安装部 ...
1
Ubuntu Server下docker实战 01: 安装docker
日志本系列文章主旨在于使用docker来搭建实际可用的基础服务,具体到每一步的操作和设置. 关于docker的原理.前世今生的内容,园子里已经有太多的文章了,此处就不再赘述. 要使用docker,当然第一 ...
1
zend-framework2 – 在ubuntu服务器12.04.01 LTS上安装zf2
问答尝试使用我的ubuntu服务器安装ZF2 curl -s https://getcomposer.org/installer | php && ./composer.phar crea ...
2
容器时代的持续交付工具---Drone:Drone介绍与安装
日志Drone:Drone is a Container-Native, Continuous Delivery Platform. 官方给的定义,从上面的定义可以得出两个关键点: 1,Container ...
2
Flume系列一之架构介绍和安装
日志Flume架构介绍和安装 写在前面 在学习一门新的技术之前,我们得知道了解这个东西有什么用?我们可以使用它来做些什么呢?简单来说,flume是大数据日志分析中不能缺少的一个组件,既可以使用在流处理中, ...
1
Kafka系列一之架构介绍和安装
日志Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...
1
Vue的介绍及安装和导入
日志08.27自我总结 Vue的介绍及安装和导入 本质就是封装一些js 一Vue的介绍 进式 JavaScript 框架 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围,最终可以独立以框架方式 ...
1
Redis介绍和安装
日志一. Redis的介绍 Redis 是一个Key-Value存储的系统:它支持存储的value类型有string(字符串),list(列表),set(集合),zset(有序集合):为了保证效率:数据都 ...
1
JQuery:介绍、安装、选择器、属性操作、动画
日志jQuery 详细内容 1.JQuery介绍 jQuery是一个快速,小巧,功能丰富的JavaScript库.它通过易于使用的API在大量浏览器中运行,使得HTML文档遍历和操作,事件处理,动画和Aj ...
1
LDAP分布式数据库的介绍和安装使用
日志 目录服务 目录是一个为查询.浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样.目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没 ...
1
服务注册发现consul之一:consul介绍、安装、及功能介绍
日志Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发.它具有很多优点.包括:基于 raft 协议,比较简洁: 支持健康检查, 同时支持 HTTP 和 ...
01 Jenkins:安装配置
日志写在前面的话 从我的工作经历来看,刚出来的时候的第一家公司我们上线采用的是脚本上线.就是那种开发合并完代码以后,在一个固定的时间点,我们上服务器执行更新脚本打包更新.这种方法有一个很大的问题,就是对于 ...
1
kubernetes实战篇之helm安装
日志系列目录 Helm是kubernetes的应用包管理工具,是CNCF孵化器下的一个项目,主要用来管理 Charts.类似于 Ubuntu 中的 APT 或 CentOS 中的 YUM.它提供了一种简单 ...
3
SSH网上商城项目实战01 整合Struts2、Hibernate4.3和Spring4.2
日志  转自:https://blog.csdn.net/eson_15/article/details/51277324 今天开始做一个网上商城的项目,首先从搭建环境开始,一步步整合S2SH.这篇博文主 ...
1
科学计算三维可视化---Mayavi入门(Mayavi介绍和安装)
日志Mayavi介绍 是基于VTK开发的可视化软件(更加高效),Mayavi完全由python编写,方便使用,而且可以使用python编写扩展,嵌入到用户程序中 安装要求 VTK >pip3 ins ...
1
React Native商城项目实战01 - 初始化设置
日志1.创建项目 $ react-native init BuyDemo 2.导入图片资源 安卓:把文件夹放到/android/app/src/main/res/目录下,如图:  iOS: Xcode打开 ...
1
php Laravel 框架 介绍及安装
日志Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁.富于 ...