新一代项目构建工具Gradle快速学习
Gradle学习
第1章 介绍
第2章 准备使用Gradle
2-1 Gradle安装
2-2 Groovy基础知识-理论介绍
2-3 Groovy基础知识-与Java比较
在idea中,Tools—>Groovy Console打开
- 分号可选
- 自动生成getter、setter方法
- 可以直接用对象.属性的方法来获取属性值
2-4 Groovy基础知识-高效特性
- assert在任何地方都可以执行
- def 变量 (类似Js的var)
- 括号可选
- 字符串三种表达
- 单引号(仅仅就是字符串)
- 双引号(可以使用${变量名}插入变量)
- 三引号(可以换行)
- 集合API
- def myList = [‘elemen1’,‘element2’],并使用<<添加元素(对应到Java中为ArrayList)
- def myMap = [‘key1’:value1,‘key2’:value2],使用集合名.属性名添加元素或修改元素值(对应到Java中为LinkedHashMap)
- 闭包
第3章 第一个Gradle项目
File—>New—>Project—>Gradle—>Java
- GroupId一般为公司域名倒着写
- ArtifactId为项目编号,唯一
- Version版本号
—>Use local gradle distribution—>finish
生成build.gradle,其中
apply plugin: 'java’表示使用Java插件
sourceCompatibility表示源文件适应的版本
repositories表示仓库
dependencies表示依赖
gradle兼容maven,因此两者的目录结构一样。将写好的项目用gradle运行之后,在idea右侧有gradle选项,其中Tasks下的build下的jar的功能就是把当前的源文件打成jar包,生成的jar包放在build下的libs中。
运行Java程序
使用Terminal输入java -classpath build/libs/jar包名 要运行的类的全限定类名
即可运行jar包
运行web程序
在build.gradle中添加apply plugin: ‘war’
在右侧使用war将web应用打包成war包放到tomcat的webapp目录中,启动tomcat即可使用web程序
第4章 高级应用
4-1 构建脚本概要
4-2 自定义任务
def createDir = {
path ->
File dir = new File(path)
if (!dir.exists()) {
dir.mkdirs();
}
}
task makeJavaDir() {
def paths = ['src/main/java','src/test/java','src/main/resources','src/test/resources']
doFirst {
paths.forEach(createDir)
}
}
task makeWebDir() {
dependsOn 'makeJavaDir'
def paths = ['src/main/webapp','src/test/webapp']
doLast {
paths.forEach(createDir)
}
}
在右侧gradle中选择Tasks下的other中可以找到自定义的任务
4-3 构建生命周期
上一节中,doFirst和doLast的代码为执行代码,其它均为配置代码
4-4 依赖管理
工件坐标:通过group、name、version可以唯一确定一个jar包
常用仓库:
依赖的传递性:
自动化依赖管理:
4-5 解决版本冲突
gradle默认使用最新的jar包来解决依赖冲突,因为一般软件都是向下兼容的
4-6 发布
在build.gradle中添加 apply plugin: 'maven-publish’和如下代码,之后执行publish任务
publishing {
publications {
myPublish(MavenPublication) {
from components,java
}
}
repositories {
maven {
name "myRepo"
url "" //私服地址
}
}
}