Gradle -- 初体验
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。Gradle是基于JVM的,所以首先需要确保已经安装好了JDK,官方文档中表示目前最新版本的Gradle需要的JDK环境是1.7以上。
官方下载地址:https://gradle.org/next-steps/?version=4.10&format=bin
官方安装文档:https://gradle.org/install/
一.Windows下的安装
1.下载安装包解压

bin : 存放可执行文件
init.d : 可存放构建脚本
lib : 存放库文件
media : 存放图标文件
2.配置环境变量
新建环境变量

Path中添加环境变量

3.cmd查看版本:gradle -v

如此,我们便成功的安装了gradle。
二.创建gradle的java工程
1.新建工程
和Maven的使用一样,我们创建工程时需要选择gradle。这里创建一个demo工程,如图:


2.工程目录

如图,gradle的工程目录结构和Maven的工程目录结构差别不是很大,其中build.gradle文件相当于Maven的pom.xml文件。也有group和version的配置。
apply plugin: 'java' 指定了应用的打包方式插件,我们也可以配置为war
repositories: 配置了仓库
dependencies: 管理依赖,和使用Maven一样,到中央仓库找到依赖的坐标复制过来即可(gradle坐标)

settings.gradle文件则指定了工程的名称。
3.gradle控制台

如图,我们进入到gradle的控制台,可以看到和Maven还是有些差别的。这里有一个jar, 如果我们将上一步的apply plugin : 'jar' 改为 apply plugin : 'war',那么这里会增加一个war的插件用于打包。
三.Groovy简介
Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。
Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的结合编程。
Groovy特点:
Groovy完全兼容Java的语法
分号是可选的
类、方法默认是public的
编译器给属性自动添加getter/setter方法
属性可以直接用点号获取
最后一个表达式的值会被作为返回值
== 等同于Java的equals(),并且不会有空指针异常
Groovy特性的高级特性:
支持assert语句
支持可选类型定义
可选的括号
支持三种字符串
拥有集合API
支持闭包
四.gradle的依赖管理
大多数时候,我们使用构建工具都是使用其中的依赖管理功能 就像我们之前使用的Maven一样。几乎所有基于JVM的软件项目都需要依赖外部类库来重用现有的功能。自动化的依赖管理可以明确依赖的版本,可以解决因传递性依赖带来的版本冲突。一个jar包属于一个工件,在gradle中,工件在仓库的坐标是group、name以及version。而工件存放在仓库里,在gradle中常用的仓库有mavenLocal、mavenCentral、jcenter,其中mavenCentra和jcenter是中央仓库,mavenLocal则是本地仓库 。
依赖传递
如果B依赖A,C依赖B,那么C依赖A。
依赖阶段
依赖阶段分为两个阶段,即编译阶段和运行阶段,而测试时也是分为这两个阶段。编译阶段所依赖的jar包,在运行阶段也会依赖。不同的阶段会有不同的标识 。
compile : 编译阶段
runtime : 运行阶段
testCompile : 测试编译阶段
testRuntime : 测试运行阶段
添加依赖
例如现在我需要fastjson的依赖,首先到Maven中央仓库复制fastJson的gradle依赖:

粘贴到dependencies方法中即完成了依赖的添加:

Tips: 如果发生依赖版本冲突,gradle默认可以解决版本冲突的问题,当出现两个不同版本的依赖时,gradle默认会使用最高版本那个 。
如果我们需要到多个仓库上查找依赖的时候,可以在 repositories 方法里添加仓库,gradle会按照配置先后去仓库里查找jar包,如下:

当然了,我们还是需要配置一下gradle的本地仓库的,参见:
https://blog.csdn.net/qq_36869903/article/details/79923257
五.附录
和Maven一样,我们在idea中需要配置一下.gradle的配置文件,默认在C盘。我们可以在自定义目录中通过cmd的 mkdir .gradle 创建目录并在这里进行配置:

经测试,在未配置本地仓库的时候,缓存的jar包会保存的.gradle的目录下。

关注微信公众号, 随时随地学习

Gradle -- 初体验的更多相关文章
- Android开发学习之路--百度地图之初体验
手机都有gps和网络,通过gps或者网络可以定位到自己,然后通过百度,腾讯啊之类的地图可以显示我们的地理位置.这里学习下百度地图的使用.首先就是要申请开发者了,这个详细就不多讲了.http://dev ...
- (一)SpringBoot基础篇- 介绍及HelloWorld初体验
1.SpringBoot介绍: 根据官方SpringBoot文档描述,BUILD ANYTHING WITH SPRING BOOT (用SPRING BOOT构建任何东西,很牛X呀!),下面是官方文 ...
- (一)SpringBoot2.0基础篇- 介绍及HelloWorld初体验
1.SpringBoot介绍: 根据官方SpringBoot文档描述,BUILD ANYTHING WITH SPRING BOOT (用SPRING BOOT构建任何东西,很牛X呀!),下面是官方文 ...
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Spring之初体验
Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
随机推荐
- Django【第24篇】:JS实现的ajax和同源策略
JS实现的ajax和同源策略 一.回顾jQuery实现的ajax 首先说一下ajax的优缺点 优点: AJAX使用Javascript技术向服务器发送异步请求: AJAX无须刷新整个页面: 因为服务器 ...
- 如何判断系统是32位还是64位的linux系统
如何判断系统是32位还是64位的linux系统 某日,需要下载个安装包,忽然忘记了自己的系统是32位还是64位的系统了,一时想不起来怎么查看时32位还是64位,呵呵,随便百度下,就发现有好多方法,这里 ...
- 【Linux】CentOS6安装jdk1.8
1.查看官网下载地址 接受协议后,点击下载链接 查看发出的请求,获得下载地址 其中后面的AuthParam参数为本次下载的即时参数,每次都不一样 2.下载安装包 下载完后改个名 wget https: ...
- Python----公开课
# 构造函数- 类在实例化的时候,执行一些基础性的初始化的工作- 使用特殊的名称和写法- 在实例化的时候自动执行- 是在实例化的时候第一个被执行的函数- ----------------------- ...
- Python---进阶---文件操作---按需求打印文件的内容
一. 编写一个程序,当用户输入文件名和行数的时候,将该文件的前N行内容打印到屏幕上 input 去接收一个文件名 input 去接收一个行数 ----------------------------- ...
- 对postcss-plugin-px2rem的研究
1.安装postcss-plugin-px2rem 2.配置 css: { loaderOptions: { postcss: { plugins: [ require('postcss-plugin ...
- weighted choice in python
对列表按概率采样 Input: a collection C of elements and a probability distribution p over C; Output: an eleme ...
- appium环境666
一.安装JDK,配置JDK环境 appium下载地址: https://github.com/appium/appium-desktop/releases/ 百度搜索下载就行,这里分享一个下载链 ...
- CF1244C
题目描述 给出n,p,w,d,求(x,y,z)使得 xw+yd=p x+y+z=n 其中d<w<10^5^ 题解 显然扩欧啊( 来自天国的long long y如果大于等于w,则显然可以把 ...
- 简单说说JavaBean的使用
一:JavaBean定义 JavaBean是一种可重复使用.跨平台的软件组件.JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean,例如中的那些可视化图 ...