Gradle的安装和使用

Posted Moon&&Dragon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle的安装和使用相关的知识,希望对你有一定的参考价值。

Gradle的安装和使用

1 什么是Gradle

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,他抛弃掉了maven的繁琐的xml配置文件,使用Groovy语言去书写配置,整个配置文件更加的清晰,功能也更加强大。

Gradle使用的是Groovy动态语言,Groovy的基本的语法,类型,包结构和其他方面都与 Java 一样,Groovy 在这之上又增加了许多东西。但是和 Java 也有着共同点。

2 下载和安装(MAC)

2.1 官方下载地址

https://gradle.org/releases/

进入官方下载地址后,选择对应的版本,下载binary-only就可以,点击下载

在这里插入图片描述

2.2 mac中配置环境变量

  • 确保java的环境存在,确保jdk的安装。

  • 将下载下来的压缩包解压,把文件可以放在自己的目录下,一定要记住存放地址。比如我放在了下面的文件

在这里插入图片描述

  • 打开终端来配置环境变量

    输入vi ~/.bash_profile

    回车后后点击i进入编辑模式,输入一下内容,这里需要确保home的路径是正确的,输入之前存放gradle的目录

    GRADLE_HOME=/Users/xiaolong/java/gradle
    PATH=$PATH:$GRADLE_HOME/bin
    export GRADLE_HOME GRADLE_USER_HOME PATH
    

    输入结束后点击esc键,进去指令模式,输入:唤醒输入条,输入wq保存,点击回车

    执行source ~/.bash_profile让配置生效

  • 配置好以后在终端输入gradle -v,来查看gradle版本,如果正常打印版本,说明配置成功。

在这里插入图片描述

3 Gradle在IDEA中使用

打开IDEA后,新建项目,我们可以选择建一个Gradle项目,一路next

进入到项目后,打开IDEA的配置,找到gradle配置,设置如下配置

在这里插入图片描述

4 Groovy语言简单介绍

打开IDEA的工具,我们可以直接去书写Groovy代码

在这里插入图片描述

4.1 Hello Groovy

Groovy语言和java语言比较相似,相比起来更加的轻松,在Groovy语言中,我们可以在语句的结尾不添加分号,下面是打印语言的书写

// 打印语句
println("hello world");
// Groovy中可以省略结尾分号,和括号
println("hello groovy")
println "hello groovy"

4.2 定义一个变量

// def是弱类型的,Groovy会根据后面的值来赋予对应的类型
def i = 18
println i
// 定义字符串
def str = "你好"
println str

// 定义布尔类型
def flag = true
// if语句
if (flag){
    println "flag为true"
}

// 定义int
int count = 0
// while语句
while(flag){
    if (count==5){
        break
    }
    println '你好'
    count++
}

4.3 定义集合

// 定义集合
def list = ['a', 'b'];
// 往list中添加元素
list << 'c';
// 也可以使用add方法
list.add('d')
// for循环
for (j in 0..<list.size()) {
    println list.get(j);
}

// 定义一个map
def map = ['key1':'value1','key2':'value2']
// 添加到map
map.key3 = 'value3'
map.put('key4','value4')
println map.key3
println map.get('key3')
// 得到entry集合
def set = map.entrySet()
// 迭代集合
def it = set.iterator()
while(it.hasNext()){
    def entry = it.next()
    // 获得key和value
    def key = entry.key
    def value = entry.value
    println key+':'+value
}

4.4 闭包

// 闭包
// 闭包就是一段代码块,在gradle中主要是把闭包当作参数来使用
// 定义闭包
def b1 ={
    println 'b1执行了';
}
def method1(Closure closure){
    closure();
}

// 调用方法
method1(b1);


// 定义一个带参数的闭包
def b2 = {
    v->
        println "hello ${v}"
}
def method2(Closure closure,String str){
    closure(str);
}
method2 (b2,"晓龙")

5 仓库的配置

gradle也和maven一样,可以配置本地的仓库,不过它却不像maven一样可以直接配置文件中配置本地仓库,它需要通过修改环境变量的值来对仓库的地址进行变化。

  • 打开终端,在环境变量中添加GRADLE_USER_HOME=/Users/...,后面的值就是仓库的地址,这里可以直接写到maven的仓库。
  • 打开idea中,在配置中查看如果仓库地址没有改变,将仓库地址修改

6 Gradle的使用

通过IDEA新建一个Gradle项目,在项目初始化化后,点击打开build.gradle

build.gradle

/*
*	因为是java项目,这里的插件默认只有java
*/
plugins {
    id 'java'
}

group 'com.moon'
version '1.0-SNAPSHOT'

/**
 * 指定所使用的仓库
 */
repositories {
    /*先从本地仓库寻找,再去中央仓库下载*/
    mavenLocal()
    /*表示使用中央仓库,此刻项目中所需要的jar包都会在中央仓库下载到本地仓库*/
    mavenCentral()
}
/*gradle工程的jar包的坐标都在dependencies中放的
* 每一个jar包都有三个元素组成
* group:name:version
*
* 我们在添加jar包时都需要带上jar包的作用域
* */
dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
    implementation group: 'org.springframework', name: 'spring-context', version: '5.2.12.RELEASE'
}

7 Gradle搭建web项目

我们创建的项目默认是一个java项目,项目结构也值有mainresource,并没有webapp,这时候我们可以手动去建一个web目录,但是这时候的web目录和我们web项目的目录并不一样,显然gradle并没有识别我们的目录,所以我们需要在配置文件中进行配置。

build.gradle

/* 我们只需要在插件中加入war的插件,这时候项目就会识别webapp */
plugins {
    id 'java'
    id 'war'
}

8 Gradle多模块项目

在多个模块中,我们的父配置文件可以将配置信息直接用于子配置文件,这时我们也需要在配置文件中设置

build.gradle

/*把所有的配置都写在allprojects{}代码块中,子配置文件就可以使用这些配置*/
allprojects {
    group 'com.moon'
    version '1.0-SNAPSHOT'

    apply plugin: 'java'

    repositories {
        mavenLocal()
        mavenCentral()
    }
    sourceCompatibility = '1.8'
    dependencies {
        testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
        testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
        implementation group: 'org.springframework', name: 'spring-context', version: '5.2.12.RELEASE'
        implementation group: 'org.aspectj', name: 'aspectjweaver', version: '1.9.6'
    }

    test {
        useJUnitPlatform()
    }
}

有了以上配置文件,那么在子配置文件中,只要是和父配置文件一致的内容,全部可以删除

在settings.gradle配置文件中,我们也可以看到当前项目的模块结构

/* 项目名称 */
rootProject.name = 'SpringAOP'
/* 模块名称 */
include 'SpringAOP-Dao'
include 'SpringAOP-Service'
include 'SpringAOP-Web'
include 'Spring-Aspect'

如果模块中想要项目去调用的话,只需要在子配置文件中声明,service模块需要调用dao模块

/* 配置文件需要写一行即可,其他配置使用父配置文件 */
dependencies {
    implementation project(":SpringAOP-Dao")
}

以上是关于Gradle的安装和使用的主要内容,如果未能解决你的问题,请参考以下文章

Gradle 引入本地定制 jar 包

如何添加jcenter仓库 gradle依赖

Gradle安装配置

Gradle的安装和使用

PHP代码-psysh调试代码片段工具

VIM 代码片段插件 ultisnips 使用教程