【笔记】Gradle学习笔记

前言

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。Gradle 构建脚本使用的是 Groovy 或 Kotlin 的特定领域语言来编写的,而不是传统的XML。
当前官方支持的语言为Java、Groovy、Scala、C++、Swift、JavaScript等以及Spring框架。(维基百科

注释

1
/* 注释内容 */

使用Gradle创建项目

创建普通的Java项目

build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
plugins {
id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

/* 指定所使用的仓库,可以按顺序指定多个仓库 */
repositories {
/* 本地仓库 */
mavenLocal()
/* 中央仓库 */
mavenCentral()
}

dependencies {
/*
定义依赖之前必须定义依赖生效的作用域
testCompile:表示表示当前依赖在测试的时候起作用
compile:表示当前依赖在构建的时候起作用
provided:表示当前依赖在打包的时候起作用

在作用域内,定义依赖时必备的三个参数
group:定义依赖的组名
name:定义依赖的项目名
version:定义依赖的版本号
*/
testCompile group: '', name: '', version: ''
compile group: '', name: '', version: ''
provided group: '', name: '', version: ''
}

创建JavaWeb项目

  • 创建一个普通的Gradle项目,在main目录下创建webapp/WEB-INF/web.xml
src/main/webapp/WEB-INF/web.xml
1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>
  • 添加打包方式配置
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
plugins {
id 'java'
id 'war
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
mavenCentral()
}

dependencies {
testCompile group: '', name: '', version: ''
compile group: '', name: '', version: ''
provided group: '', name: '', version: ''
}

创建包含父子级模块的项目

  • 如果父模块引入的依赖想让子模块继承,需要在父模块的build.gradle中用allprojects{}包裹起来
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
allprojects {
plugins {
id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
mavenCentral()
}

dependencies {
testCompile group: '', name: '', version: ''
compile group: '', name: '', version: ''
provided group: '', name: '', version: ''
}
}
  • 此时所有子模块build.gradle即便是什么也不配置,也同样拥有所有被allprojects{}包裹起来的配置

子模块引用其他子模块的依赖

  • 如果多个子模块有相同的依赖,可以现在其中一个子模块配置依赖,然后在另一个子模块引用这个子模块的所有依赖

:子模块名:其他子模块名可以在父模块的settings.gradle中复制

build.gradle
1
2
3
dependencies {
compile(":子模块名")
}

将Maven的本地仓库作为Gradle的本地仓库

  • 添加一个环境变量

变量名:GRADLE_USER_HOME
变量值:Maven的本地仓库路径

完成

参考文献

哔哩哔哩——代码基基
javaroad