zoukankan      html  css  js  c++  java
  • Gradle入门

    1.什么是Gradle

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy语言进行编写的,主要面向Java应用为主,目前也增加了基于Kotlin语言以及Scala语言的支持,目的是为了抛弃了基于XML的各种繁琐配置。

    2.安装Gradle

    2.1下载

    使用win10为例进行安装,前提是本机已安装JDK1.8+。下载网址:https://gradle.org/install/。在下载页面选择二进制的文件,然后解压到指定的目录即可。

    2.2安装

    解决后需要配置环境变量,需要指定到bin目录,配置后是cmd输入

    gredle -v

    看到下图说明安装成功。

     3.Gradle与IDEA集成

    项目源码:https://github.com/zhongyushi-git/gradle-collection.git。本介绍IDEA版本是2020.3.3,其他版本可能有差别。

    1)打开idea,使用gradle创建一个java项目,指定JDK

    2)点击next,输入基本信息

    3)点击finish,就会进行创建。创建成功后并没有生成src目录,就需要手动通过任务创建。

    4)设置Gradle的安装路径为本地路径,jvm使用本地的jdk

    5)打开build.gradle文件,在最后面添加下面的代码

    task "create-dirs"  {
        sourceSets*.java.srcDirs*.each {
            it.mkdirs()
        }
        sourceSets*.resources.srcDirs*.each{
            it.mkdirs()
        }
    }

    6)点击右边的Gradle中的刷新按钮,然后按下图步骤操作

    7)操作成功后就有src目录了,生成的目录如图

    4.Groovy基本语法

    4.1打开Groovy调式窗口

    在gradle使用的是groovy语言,可以通过Groovy调式窗口来测试groovy代码,打开方式是在菜单栏选择Tools,如下图:

    打开后就可以在里面输入代码,点击左边的按钮执行,执行的结果在控制台进行打印

     4.2 基本语法

    1)基本输出

     基本输出使用println,后面的括号可省略,也不需要添加分号

    println("hello world")
    println "hello world"

    打印结果如下

     2)定义变量

    定义变量可以使用int,string等类型,也可以使用def来声明,但需要注意的是在groovy中没有基本数据类型,都是对象类型。

    int a  = 23
    println a
    def aa = 234
    println aa
    
    def str = 'hello'
    def str2 = "hello"
    println str
    println str2

    3)定义方法

    方法的定义类似于JavaScript,使用def声明。分支语句if-else也类似,在此略

    def test(def p){
        println("参数是:"+p)
    }
    
    test('hello gradle')

    4)定义l集合

    定义list集合

    def list = ['love','哈哈哈','xiaohei','456']
    //使用下标访问
    println list[0]
    //遍历
    for(el in list){
        println el
    }

    定义map集合

    def map = ['name': '张三', 'age': 20, sex: '']
    
    println map.get('name')
    
    for (item in map) {
        println(item.getKey() + ":" + item.getValue())
    }

     4.3闭包

    闭包表示的是groovy中的一段代码块,主要作为参数在方法之间传递使用。相当于一块公共的代码块,在不同的方法中来调用。那么在方法中药使用Closure 关键字来定义参数,在方法里面调用此类型的方法,如下代码是无参数的闭包:

    //闭包
    def aaa = {
        println('hello geadle')
    }
    
    def test1(Closure closure){
        //执行闭包的代码
        closure()
    }
    
    test1(aaa)

    带有参数的闭包

    //闭包
    def bbb = {
        v -> println('hello ' + v)
    }
    
    def test2(Closure closure){
        //执行闭包的代码
        closure('zxh')
    }
    
    test2(bbb)

    4.4build.gradle和settings.gradle详解

    在第三章汇总创建gradle的项目后,在项目根目录下有两个文件,分布是build.gradle和settings.gradle。

    1)在依赖中,group就是pom中的groupId,name就是pom中的artifactId。

    2)settings.gradle中指定的就是项目名,要通过项目名进行访问。

    3)mavenCentral()表示使用中央仓库,则项目中所需要的jar包都会默认从中央仓库下载到本地指定目录中(C:\Users\username\.gradle\caches\modules-2\files-2.1

    4.5 指定maven中心仓库的路径

    若直接使用中央仓库,则下载很慢,会使用本地以及下载好的仓库。配置步骤如下:

    1)把本地仓库路径其配置到环境变量中

     

     需要注意的是,这个变量名只能是这个,固定的,否则不会生效。

    2)配置本地仓库

    在build.gradle的repositories中添加mavenLocal()并指定下载的仓库,如图

    mavenLocal表示从本地仓库寻找jar包,先从本地查找,没有找到再中央仓库下载。当然,这里只配置了一个地址,需要的时候可以配置多个阿里云的仓库地址,毕竟阿里仓库的服务器主机不止一台。

    maven {
    url 'https://maven.aliyun.com/repository/public/'
    }
    mavenLocal()

    配置后重启idea,再次打开settings,看到Grade user home已经变成指定的仓库路径了,如下图

    5.使用Gradle创建spring项目

    示例源码:从第三章下载源码,此源码在gradle-demo文件夹下。

    在第3章中,我们已经创建了一个基本的java项目,就在此基础上进行开发,使用spring的自动注入功能。

    1)在build.gradle先导入spring-context的依赖

    compile group: 'org.springframework', name: 'spring-context', version: '5.3.4'

    这种依赖可以在https://mvnrepository.com/中选择gradle格式复制。

    2)创建UserService接口

    package com.zxh;
    
    public interface UserService {
    
        void getList();
    }

    3)创建UserServiceImpl实现类

    package com.zxh;
    
    public class UserServiceImpl implements UserService {
        @Override
        public void getList() {
            System.out.println("all user list");
        }
    }

    4)在资源目录下创建spring的配置文件applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context.xsd">
    
        <bean id="userService" class="com.zxh.UserServiceImpl"></bean>
    
    </beans>

    5)修改gradle的构建及运行环境使用IDEA环境

     此选项默认是Gradle,需要修改为IDEA。凡是gradle的项目,这里都必须改成IDEA。

    6)在test目录下新建测试类和方法

    package com.zxh;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class UserTest {
    
        @Test
        public void test3() {
            //加载配置文件
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            //获取bean对象
            UserService userService = (UserService) context.getBean("userService");
            //调用方法
            userService.getList();
        }
    }

    7)运行测试方法。可以看到把UserService注入进来并调用其方法了。

    6.使用Gradle创建spring web项目

    示例源码:从第三章下载源码,此源码在gradle-web-demo文件夹下。

    1)打开idea,选择新建项目

    2)使用Gradle进行创建,选勾选ava

    3)输入项目基本信息

     

     4)创建后使用Task命令创建src目录(第三章已介绍)

     5)设置Gradle的安装路径为本地路径,jvm使用本地的jdk并使用idea进行构建

     

    6)在src/main目录下新建webapp目录

    7)在build.gradle中指定项目是war包,并添加spring需要的依赖,指定本地仓库

     附上依赖:

      implementation group: 'org.springframework', name: 'spring-beans', version: '5.3.4'
        implementation group: 'org.springframework', name: 'spring-context', version: '5.3.4'
        implementation group: 'org.springframework', name: 'spring-core', version: '5.3.4'
        implementation group: 'org.springframework', name: 'spring-expression', version: '5.3.4'
        implementation group: 'org.springframework', name: 'spring-web', version: '5.3.4'
        implementation group: 'org.springframework', name: 'spring-webmvc', version: '5.3.4'
        compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1'
        compileOnly group: 'javax.servlet.jsp', name: 'javax.servlet.jsp-api', version: '2.3.3'

    7)点击右侧gradle中的刷新按钮,然后打开project Structrue,

    8)选择Facets,再选择web,在Deployment Descriptors中点击添加按钮,会显示web.xml,再点击进行添加

    9)在弹框中指定webapp的目录,并在后面添加WEB-INFweb.xml后点击OK,

     

    10)此时在Web Resource Directories中的目录也会变成webapp所在的路径

    11)点击Apply,webapp目录就变成资源目录了,也生成了web.xml文件

    12)在web.xml中配置内容

        <!--springmvc前端控制器-->
        <servlet>
            <servlet-name>DispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!--加载配置文件-->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>
            </init-param>
        </servlet>
        <servlet-mapping>
            <servlet-name>DispatcherServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>

    13)在resources目录下新建springmvc.xml,内容如下

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/mvc
          http://www.springframework.org/schema/mvc/spring-mvc.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!--开启注解-->
        <mvc:annotation-driven></mvc:annotation-driven>
        <!--包扫描-->
        <context:component-scan base-package="com.zxh.controller"/>
    
    
    </beans>

    14)创建包com.zxh.controller,并在此包下新建TestController类

    package com.zxh.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class TestController {
    
        @GetMapping("/test")
        public String test() {
            return "Hello,world!Gradle";
        }
    
    
    }

    15)点击add Configuration,添加tomcat

    16)添加tomcat

     17)选择Deployment,添加要运行的项目

     18)选择项目

    19)修改访问路径为/,方便访问

    20)启动tomcat,访问localhost:8080/test即可看到返回的信息,此时搭建已经完成。

    7.使用Gradle创建springboot项目

    示例源码:从第三章下载源码,此源码在gradle-springboot-demo文件夹下。

    1)打开idea,选择新建项目

    2)使用Spring Initializr进行创建

    3)输入基本信息,type选择Gradle,packaging选择war

     4)选择Web,勾选Spring Web

    5)点击next,最后完成即可。设置Gradle的安装路径为本地路径,jvm使用本地的jdk

    6)build.gradle中添加本地仓库

     7)点击右侧的gradle打开面板,点击刷新按钮,下载需要的依赖

    8)下载完成后会在包下生产启动类和servlet启动器,这里先不启动。

    9)修改配置文件application.properties,把配置应用名称的哪行代码注释

     注释掉是为了方便测试。

    10)在包下新建controller包,再建TestController类,写一个测试的接口

    @RestController
    public class TestController {
    
        @GetMapping("/test")
        public String test(){
            return "Hello,Gradle!";
        }
    }

    11)点击运行启动类,可以看到在控制台运行成功,如图

    12)在浏览器访问http://localhost:8080/test可正常返回数据,此时使用gradle创建SpringBoot项目已完成。

    就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
  • 相关阅读:
    HTML---网页编程(2)
    HTML---网页编程(1)
    HDOJ/HDU 1297 Children’s Queue(推导~大数)
    HDOJ/HDU 1250 Hat's Fibonacci(大数~斐波拉契)
    HDOJ/HDU 1133 Buy the Ticket(数论~卡特兰数~大数~)
    洛谷P1314 [NOIP2011提高组Day2T2] 聪明的质监员
    洛谷P1313 [NOIP2011提高组Day2T1]计算系数
    POJ3696 The Luckiest number
    洛谷P1312 [NOIP2011提高组Day1T3]Mayan游戏
    洛谷P1311 [NOIP2011提高组Day1T2]选择客栈
  • 原文地址:https://www.cnblogs.com/zys2019/p/14591646.html
Copyright © 2011-2022 走看看