The World Best ST.

Gradle简介

字数统计: 715阅读时长: 2 min
2019/04/12 Share

Gradle

简介

Java世界中主要有三大构建工具:Ant、Maven和Gradle。Gradle作为build工具的新星,受到谷歌的大力拥护,直接钦定为AS的御用build工具,在java web方面也大有取代maven上位的趋势
它是一个基于 JVM 的富有突破性构建工具,一种可切换的,像 maven 一样的基于约定约定优于配置的构建框架。
IDEA中自动帮我们生成了一些通用的构建规则,有时候,我们会有一些个性化的构建需求,比如引入了第三方库,或者希望在现有的构建方式中增加一些其他的事情,这时候就要通过Groovy进行个性化的编程。

groupId一般分为多个段,以前两段为例子,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat

使用说明

通过执行build.gradle来实现build的功能,build.gradle这个build脚本是需要程序员自己来编写的,可以使用groovy语言来编写,功能强大而且直观。也可以直接引入其他人已经编写好的脚本或工具来实现build,引入方法为通过apply plugin: ‘plugin名’语句实现,plugin可以是build脚本也可以是java程序。

以一个springboot项目为例子

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
// 相关插件, 包含许多build脚本
plugins {
id 'org.springframework.boot' version '2.1.3.RELEASE'
id 'java'
}

apply plugin: 'io.spring.dependency-management'

// group名称
group = 'com.itibanst'
// 版本号
version = '0.0.1-SNAPSHOT'
// JDK版本
sourceCompatibility = '1.8'

repositories {
// maven镜像地址
maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}
mavenCentral()
}

// 相关依赖
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

Gradle与Maven

Maven的依赖:

1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>

Gradle在设计的时候基本沿用了Maven的这套依赖管理体系,不过它在引用依赖时还是进行了一些改进

1
2
3
4
dependencies {
compile 'org.hibernate:hibernate-core:3.6.7.Final'
testCompile ‘junit:junit:4.+'
}

  1. Gradle比Maven的依赖表达简单
  2. Maven和Gradle对依赖项的scope有所不同,maven有6种scope,分别是complie(默认)、provided、runtime、test、system、import;gradle只有4种,compile、runtime、testCompile、testRuntime,其他想实现的scope可以使用编码来实现
  3. Gradle支持动态版本依赖。在版本号后面使用+号的方式可以实现动态的版本管理。
  4. Gradle解决依赖之间的冲突比Maven要简单
CATALOG
  1. 1. Gradle
    1. 1.1. 简介
    2. 1.2. 使用说明
      1. 1.2.1. 以一个springboot项目为例子
    3. 1.3. Gradle与Maven