gradle学习.jpg

Gradle介绍

这是一个基于JVM的富有突破性构建工具.

  • maven一样的基于约定约定优于配置的构建框架
  • 强大的依赖管理(基于 ApacheIvy)
  • 基于 groovy,其 build 脚本使用 groovy dsl 编写
  • 最重要的一点,配置相关依赖代码量少,不会像maven一样xml过多,一个大型项目,pom.xml看的眼花.

gradle上手操作

这里用的是idea创建项目,如下图创建gradle项目,流程和使用maven基本一样
ye66ts.png
创建完成后的界面如下,编写基本的groovy脚本
yecK4s.png
build.gradle文件就是整个项目的配置文件,相当于maven构建的pom.xml的配置
详细配置如下

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
32
33
34
35
36
group 'com.hsl'
version '1.0-SNAPSHOT'

allprojects {
apply plugin: 'java'
apply plugin: 'war'
sourceCompatibility = 1.8
}

repositories {
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
mavenCentral()
//mavenLocal()
}

dependencies {
testRuntime group: 'junit', name: 'junit', version: '4.12'
compile('ch.qos.logback:logback-classic:1.2.1')
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.3.Final'
}

def createDir = {
path ->
File dir = new File(path);
if(!dir.exists()){
dir.mkdirs();
}
}
task makeWebDir(){
def paths = ['src/main/webapp'];
doFirst {
paths.forEach(createDir);
}
}

下面介绍里面的语法含义:

  • group,version即组名,版本号
  • allprojects这里指全局模块使用
  • apply plugin使用如下的插件,java打包,war打包
  • repositories使用的中央仓库,使用时按顺序选择使用私服仓库还是中央仓库
  • dependencies项目中用到的依赖
    可以定义一个闭包来执行相应的任务,如下:
1
2
3
4
5
6
7
def createDir = {
path ->
File dir = new File(path);
if(!dir.exists()){
dir.mkdirs();
}
}

定义一个task执行相应的自定义任务

1
2
3
4
5
6
task makeWebDir(){
def paths = ['src/main/webapp'];
doFirst {
paths.forEach(createDir);
}
}

简单的遍历创建一个webapp项目文件夹
idea右侧加载后就可以显示加载的依赖和创建的任务
Tasks

这就是gradle的简单使用,更高级的语法使用后面去补充了解
……