Gradle
Gradle
- 项目构建工具:所谓构建就是对项目进行 编辑 编译 测试 打包 部署等一系列称之为项目构建
- 行业主流工具 :apache ant(2000年)---apache maven(2004年)----Gradle(2012年)
一:什么是Gradle
Gradle是一个基于[Apache Ant]和[Apache Maven]概念的项目[自动化建构]工具。它使用一种基于[Groovy]的[特定领域语言]来声明项目设置,而不是传统的[XML]。
当前其支持的语言限于[Java]、[Groovy]和[Scala],计划未来将支持更多的语言。
groovy是运行在jvm之上的脚本语言,把脚本装换为java代码执行.
二:Gradle的特点
1:简化了Maven的繁琐配置
2: 支持多工程的构建
3:基于groovy脚本构建,其build脚本使用groovy语言编写
三:安装Gradle
win:
-
安装;https://gradle.org/install/ -------------> releases page.--------->找一个版本,下载binary-only 任何平台都适用
-
下载解压到 D:\tools\gradle-6.2.1
-
配置环境变量
GRADLE_HOME D:\tools\gradle-6.2.1 %GRADLE_HOME%\bin 验证:gradle -version
四:Gradle与IDEA集成构建项目
- 默认情况下Gradle与idea不需要做任何配置,可以直接打开idea创建一个Gradle的项目即可.
-
1:构建普通java项目
-
1.1
-
1.2
- 1.3
- 1.4 每个项目都要单独配置--不太友好啊
五:groovy语法学习
1:基本语法
//1:基础语法输出一句话 语法比较随意
println("Hello Groovy");
println("Hello gradle")
println "Hello Maven"
//定义强类型变量 int string double 总结:groovy中都是对象类型,没有基本类型的概念
int a = 23;
println(a)
//定义弱类型变量
def aa = 150
println(aa)
//groovy中都是对象类型
println(a.class)
println(aa.class)
//不区分单引号和双引号
def name = 'faker'
def address = "shanghai"
println( name.class)
println(address.class)
//方法的定义---和python语法好像
def play(){
println("hello maven!")
}
play()
def play2(def str){
println(str + ":======= hello groovy!")
}
//调用
play2("Gradle is good")
//定义方法以及if判断
def plays3(def b){
if(b){
println("hello true")
}else{
println("hello false")
}
}
plays3(false)
2:基本语法
import javax.swing.text.html.parser.Entity
//1:定义list
def list=['faker','bang','wolf']
//2:根据下标获取元素
print list[1] //bang
println("")
//3:遍历集合
for(str in list){
println(str)
}
//1:定义map集合
def map=['xiaoyu':"可爱的人",'xiaozhou':"帅气的人"];
//2:根据key直接获取map集合中的元素值
println(map.get("xiaoyu"))
//3:遍历map集合
for(entry in map){
println("key:"+entry.getKey()+"----value:"+entry.getValue())
}
3:基本语法之闭包
闭包:就是groovy中的一段代码块,主要用来作为参数在方法之间传递使用,保护代码块内部的元素不受外部干扰
//基本的闭包
def m1 ={
println("hello groovy")
}
//定义一个带有闭包参数的方法
def play(Closure closure){
closure() //执行闭包中的内容
}
//调用
play(m1)
//带有参数的闭包
def m2 = {
v ->
println("hello world 参数为"+v)
}
//在方法中调用闭包的传递参数
def play2(Closure closure){
closure("小黑")
}
//调用方法
play2(m2)
六:Gradle项目的配置文件详解
plugins {
id 'java'
}
group 'com.itnoob'
version '1.0-SNAPSHOT'
//表示使用maven的中央仓库
repositories {
mavenCentral()
}
//管理依赖
/**
*每一个jar包都有3个基本元素组成 group name version
* scope 作用域:gradle都药加上作用域
* compile 编译 运行 打包
* testCompile 仅仅在测试可用
* providedCompile 当前idea中可用
*/
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile group: 'org.eclipse.jetty.toolchain', name: 'jetty-schemas', version: '5.2'
}