Windows -- Gradle安装教程 -idea创建配置Gradle项目 , 以及Gradle案列

什么是Gradle

Java作为一门世界级主流的编程语言 , 有一款高效易用的项目管理工具 , 是java开发者共同追求的心愿和目标 , 先是2000年的Ant , 后2004年的Maven两个工具的诞生 , 都在java市场上取得了巨大的成功 , 但是二者都有一定的不足和局限性 。

2021年基于Ant和Maven产生的Gradle , 弥补了Ant和Maven的不足 , 带来了一些更高效的特点 , 它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置 , 抛弃了基于XML的各种繁琐的配置 , 面向java应用为主 , 当前其支持的语言限于Java , Groovy和Scala , 计划未来将支持更多的语言 。

Gradle安装配置(windows版)

我们想使用Gradle , 首先要安装Gradle , 安装Gradle分为如下几步

  1. 下载Gradle

Gradle安装包下载地址

Gradle官方文档

下载完成 , 进行解压 , 得到以下效果图

请添加图片描述

  1. 配置环境变量

打开环境配置,新建系统环境 GRADLE_HOME , 值为D:\Program Files\gradle-6.6.1

请添加图片描述

找到path变量 ,后面添加%GRADLE_HOME%\bin;

请添加图片描述

在命令框中使用 gradle -v 命令 , 可以显示版本号 , 则表示安装成功

请添加图片描述

Gradle和idea集成

我们来创建一个Gradle工程
  1. 打开idea , 来创建工程

请添加图片描述

以下步骤 , 是指定项目的名称 , 以及项目路径地址 , 此处不再累述

项目创建好之后 , 需要在idea来配置Gradle

请添加图片描述

以上操作完成后 , 我们的Gradle工程就创建好了

以上是在idea上面创建一个简单的Gradle工程 , 但是可能很多同学创建的工程 , 没有src目录 , 不用担心 , 因为在创建项目工程时要下载Gradle的依赖 , 但是编译器总是提示 , 下载失败的情况 , 想要解决这个问题 , 请参考使用Gradle创建Spring Boot 项目的章节

Groovy语言简单介绍(Gradle配置文件所使用的语言)

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。

Groovy是一种基于Java平台的面向对象语言。 Groovy 1.0于2007年1月2日发布,其中Groovy 2.4是当前的主要版本。 Groovy通过Apache License v 2.0发布。

Groovy中有以下特点:
  • 同时支持静态和动态类型
  • 支持运算符重载
  • 本地语法列表和关联数组
  • 对正则表达式的本地支持
  • 各种标记语言,如XML和HTML原生支持
  • Groovy对于Java开发人员来说很简单,因为Java和Groovy的语法非常相
  • 您可以使用现有的Java库
  • Groovy扩展了java.lang.Object

以上内容 , 了解即可 ,不用太关于深究 , 这一章节 , 我们就学一下Groovy语言的简单使用

idea里面提供了编写Groovy语言的工具

请添加图片描述

提供此操作 , 会显示一个 groovy_console.groovy 文件 , 这是编写Groovy语言的控制台, 我们在该文件中就可以编写Groovy语言 , 然后进行执行

注意 : (Groovy语言与java语言非常非常非常的像 , 很简单),

请添加图片描述

Groovy语言编写起来 , 更加的随意 , 容错性 , 更加的强

比如 :

  1. groovy语言可以省略末尾的分号 (也是可以进行执行的)
println("hello groovy")
  1. groovy语言 , 可以省略括号 (也是可以进行执行)
println "hello groovy"
  1. groovy如何定义变量
def i = 18    //int类型
def s = "小明" //字符串类型
println i
println s

以上代码 , 创建一个def类型的 i ,指定的值是 18 , 如何我们使用println来输出了这个i,

def介绍 : def类型是一种弱类型 , groovy会根据情况给变量赋予对应的类型 , 相当于 var , 代表任意类型 ,

groovy不但可以指定int类型 , 字符串类型 , 我们也可以指定集合类型

<!-- 定义一个集合类型-->
def l = ['a' , 'b']
<!-- 往l中添加元素-->
l << 'c'
<!-- 取出l 中的第三个元素-->
println l.get(2)

定义一个Map


<!--定义一个map集合-->
def m = ["key1":"value1" , "key2":"value3"]
<!-- 向map中 , 添加一个key->value对-->
map.key3="value3"
<!-- 打印出key3的值-->
println map.get("key3")

groovy中的闭包

什么是闭包 : 闭包其实就是一段代码块 , 在gradle中 , 我们主要是把闭包当成参数来使用


<!-- 定义一个闭包 -->
def b1 = {
    println "hello b1"
}

<!-- 闭包定义好了 , 但是我们要然后使用呢 ,  -->
<!-- 下面我们来定义一个方法 , 方法的参数需要闭包类型的参数 -->
def method1(Closure closure) {
    <!-- 来执行该方法中的闭包参数-->
    closure()
}
 
 <!-- 调用方法 , 传入闭包  , 执行代码 , 你会发现 , 闭包里面的输出语句 , 执行了-->
method1(b1)

以上是简单的定义了一个闭包 , 下面我们来定义一个带有参数的闭包

<!-- 定义一个带有参数的闭包 -->
def b2 = {
<!-- v就是闭包的参数 -->
    v ->
    println "hello ${v}"
}

def method2(Closure closure) {
    <!-- 来执行该方法中的闭包参数-->
    closure("小明")
}

<!-- 调用方法 , 传入闭包 -->
method2(b2)

以上就是groovy语言的简单使用 , 学那么多 , 基本上够用了 , 如果有兴趣的学员 , 可以去网上深入学习 , groovy语言 , 总体来说 , 很简单 , 如果你感觉非常绕 , 看不懂 , 死记硬背 , 就这样的格式 , 就这样写 , 死记硬背的话也不影响以后开发

Gradle仓库的配置

以下是Gradle仓库的配置介绍

plugins {
    id 'org.springframework.boot' version '2.3.7.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
    id 'war'
}

group = 'com.example' //分组
version = '0.0.1-SNAPSHOT' //版本号
sourceCompatibility = '1.8'


// 指定所使用的仓库  ,
// mavenCentral() 表示使用中央仓库 , 此刻项目中所需要的jar包都会默认从中央仓库下载到本地指定的目录

repositories {
//    ----------------------------------------(第一种写法) ,
//    一种写法解释 : 只配置中央仓库 , 表示直接中中央仓库下载jar包 , 但是如果指定下载的位置已经有了 , 就不会再次下载了

    // 指定阿里云镜像(根据需要添加)
     maven { url 'https://maven.aliyun.com/repository/public/' }

        mavenCentral()

//    ----------------------------------------(第二种写法)(推荐使用)
//    二种写法解释 : 以下两个配置 表示先从本地仓库寻找依赖 , 如果本地没有 , 再去中央仓库下载
    //    mavenLocal()
    //    mavenCentral()

}

// gradle工程所有的jar包的坐标都放在 dependencies 属性内放置
// 每一个jar包的坐标都有三个基本元素组成 (group , name , version)
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
    <!-- 以下可以引入多个jar包 -->
    ...
}

test {
    useJUnitPlatform()
}

Gradle入门案例

  1. 我们先创建一个dao层的接口
package com.example.gradle_test.Dao;

/**
 * @date 2021-05-10 16:03
 */
public interface TestDao {

    public String getTestDao();
}

  1. 以及对应的实现类
package com.example.gradle_test.Dao.Impl;

import com.example.gradle_test.Dao.TestDao;
import org.springframework.stereotype.Service;

/**
 * @date 2021-05-10 16:04
 */
@Service
public class TestDoaImpl  implements TestDao {

    @Override
    public String getTestDao() {
        return "测试成功了";
    }
}

  1. 然后我们在test目录下 . 来进行测试
package com.example.gradle_test;

import com.example.gradle_test.Dao.TestDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class GradleTestApplicationTests {

    @Autowired
    TestDao testDao;

    @Test
    void contextLoads() {

        System.out.println(testDao.getTestDao());
    }
}
  1. 运行该程序 , 可以看到效果

> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
> Task :test
16:07:34.565 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
......
16:07:34.996 [Test worker] DEBUG org.springframework.test.context.support.TestPropertySourceUtils - Adding inlined properties to environment: {spring.jmx.enabled=false, org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.7.RELEASE)

2021-05-10 16:07:35.359  INFO 8316 --- [    Test worker] c.e.g.GradleTestApplicationTests         : Starting GradleTestApplicationTests on lep with PID 8316 (started by *** in D:\AllProjects\practice\Gradle\Gradle_test)
2021-05-10 16:07:35.362  INFO 8316 --- [    Test worker] c.e.g.GradleTestApplicationTests         : No active profile set, falling back to default profiles: default
2021-05-10 16:07:37.068  INFO 8316 --- [    Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2021-05-10 16:07:37.451  INFO 8316 --- [    Test worker] c.e.g.GradleTestApplicationTests         : Started GradleTestApplicationTests in 2.44 seconds (JVM running for 4.431)
测试成功了
2021-05-10 16:07:37.887  INFO 8316 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
BUILD SUCCESSFUL in 6s
4 actionable tasks: 2 executed, 2 up-to-date
16:07:38:任务执行完成  ':test --tests "com.example.gradle_test.GradleTestApplicationTests.contextLoads"'。

  1. 我们也可以把项目进行打包

请添加图片描述

该目录下所有的命令 , 与Maven的命令差不多 , 如果我们指定双击jar包 , 则把项目打成一个jar , 也可以打成war包 ,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欢乐少年1904

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值