查看原文
其他

Apache Ant+Apache Maven—>Gradle

树莓蛋黄派 Java规途 2023-07-04


  • 一、Gradle安装与配置(基于Linux)

    • 1. 安装包

    • 2.安装与配置

  • 二、Gradle基础

    • (一)Gradle项目目录结构介绍

    • (二)Groovy的简单语法

    • (三)Gradle配置文件的介绍

  • 三、Gradle开发项目

    • (一)Gradle开发Spring项目

    • (二)Gradle开发Web项目

  • 往期文章


Part1Gradle

Gradle

1一、Gradle安装与配置(基于Linux)

1. 安装包

百度/bing搜索https://gradle.org/,进入gradle官网。

选择Install Gradle,进行页面的跳转。

随后向下翻,选择完全安装,Complete

2.安装与配置

下载安装包之后解压至指定目录,本机是以/home/lambda/Gradle为根目录,也可选择以/usr/local为根目录。

首先确定本机是否配置了JDK的环境,若没有,则需要首先配置JDK的环境。

java -version
//查看是否配置JDK的环境。

其次编辑/etc/profile文件,相关指令为

sudo su //提权,以管理员方式编辑
vim /etc/profile //使用vim编辑器编辑相关文件内容。

再次,在打开的profile文件中添加相关的路径。

export GRADLE_HOME=本机gradle所在的位置
export PATH=$GRADLE_HOME/bin:$PATH

最后,使配置文件生效

source /etc/profile

使用指令查看gradle是否安装成功

gradle -version

出现以上提示表示gradle安装成功

2二、Gradle基础

(一)Gradle项目目录结构介绍

  • src/main/java 放置正式代码目录
  • src/main/resources 放置正式配置文件目录
  • src/test/java  放置单元测试代码目录
  • src/test/resources 放置单元测试配置文件目录
  • src/main/webapp 放置页面元素 比如:js css html等

目录结构如图所示

gradle目录结构

(二)Groovy的简单语法

在idea项目中,找到tools,打开groovy console,即可编写groovy。

//groovy编程语言
println("Hello Groovy!");

//groovy可以省略语句中最末尾的分号
println("Hello Groovy!")

//groovy可以省略语句中的括号
println "Hello Groovy!"

//groovy定义变量,def关键字实现,是弱类型的。groovy会根据情况来自动匹配所对应的类型。
def  i=15;
println i

//groovy定义集合类型
def list=["a","b"]
//向集合中添加元素
list << "c"

//从集合中取出元素
println(list.get(2))

//定义一个map集合
def  map=["key1":"value1","key2":"value2"]
//向map中添加元素
map."key3"="value3"
//取出map中添加的元素
println(map.get("key3"))

综上:

  • groovy中打印语句是println,并且后续的括号可以省略
  • groovy语言中语句末尾的分号可以省略
  • 使用def关键字定义变量或者集合等数据类型。用法与Java相似

groovy中的闭包

闭包本质上是一段代码块,在gradle中,主要是把闭包当作参数来使用。

步骤如下:

  1. 定义一个闭包
def pac={
    println("Hello Groovy!")
}

  1. 定义一个方法,方法中的参数为闭包类型的参数

需要注意的是groovy中闭包类型使用Closure

def method(Closure closure){
    closure()
}
  1. 调用方法method
method(pac)

例子:定义一个带参数的方法

def pac2={
    v->
        println("Hello ${v}")
}

def  method2(Closure closure){
    closure("world")
}

method2(pac2)

需要注意的是:

v代表的是一个参数,是需要调用者传入指定的值的,而在method中调用执行闭包时,需要在闭包中传入对应的参数值,保证结果的正确性。

(三)Gradle配置文件的介绍

  • 依赖配置文件

gradle中所有的依赖都放置在这个dependencies之内

每一个jar包的坐标都有3个属性组成:group、name、version,类似于maven的三个坐标属性。

我们在gradle中添加jar包依赖的时候需要指定jar包的作用域。

dependencies {    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'    testCompile group:'junit',name:'junit',version:'4.12'}
  • 仓库选择

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

其中gradle下载的依赖的本地地址为/home/lambda/Gradle/gradle reposity/caches/modules-2/files-2.1目录下

repositories {    mavenCentral()}

3三、Gradle开发项目

(一)Gradle开发Spring项目

  1. 首先选择gradle项目,并且选好相应的gradle仓库。
  • 选择相应的gradle的本地仓库地址
  • 将Run tests Using更改为Idea的环境。Build和Run使用默认的Gradle
  • 选择本地的gradle,因为idea本身也自带gradle
  • 选择项目所使用JDK配置,本项目中使用JDK1.8
  1. 更改配置文件build.gradle
plugins {
id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
mavenLocal()
mavenCentral()
}

/*gradle中所有的依赖都放置在这个dependencies之内
* 每一个jar包的坐标都有3个属性组成,
* group
* name
* version
* */
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
//引入Spring框架的依赖
implementation group: 'org.springframework', name: 'spring-context', version: '5.3.9'
//引入junit依赖
testImplementation group: 'junit', name: 'junit', version: '4.12'
//引入SpringTest的依赖
testImplementation group: 'org.springframework', name: 'spring-test', version: '5.3.13'
}

test {
useJUnitPlatform()
}
  • plugins:表示的是使用的环境,本处表示基于Java环境。
  • group和version表示本项目的项目id和对应的版本
  • repository:表示项目中使用的坐标依赖的仓库,手动加入mavenLocal(),表示优先从本地仓库加载对应的jar包
  • dependencies表示项目中所使用的依赖,(关于项目依赖的格式,见maven中央仓库)
  1. 创建对应的案例
/**
 * The interface Account dao.
 *
 * @author lambda
 */

public interface AccountDao {

    /**
     * Find all list.
     *
     * @return the list
     */

    List findAll();
}

@Repositorypublic class AccountDaoImpl implements AccountDao {    @Override    public List findAll() {        System.out.println("列表查询成功.......");        return null;    }}
  1. 创建Spring的配置文件
<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc

">

    <context:component-scan base-package="com.alibaba"/>
</beans>

此处开启自动化扫描,并使用注解来完成项目开发

  1. 创建测试类

首先创建测试基类,提前将junit的测试加入到Spring测试环境之中,并预先加载配置文件

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations 
= {"classpath:beans.xml"})
public class BaseTest {
}

最后创建测试类,并继承测试基类

public class AccountTest extends BaseTest{

    @Autowired
    private AccountDaoImpl accountDao;

    @Test
    public void testFindAll(){
       accountDao.findAll();
    }
}

此处继承测试基类之后,按照要求注入需要使用到的对象,并使用@AutoWired注解完成属性的注入。最后使用单元测试。

(二)Gradle开发Web项目

  1. 创建Gradle项目

选择Java环境,并设置项目所在位置,并修改相应的参数,步骤如(一)所示

  1. 创建webapp目录

在src/main下创建一个webapp目录,并修改build.gradle目录的内容,使其成为一个web项目

创建一个webapp目录之后再次创建一个WEN-INF目录,在该目录下创建web.xml文件

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

</web-app>

并在build.gradle文件中的plugin中添加war包支持。

  1. 在build.gradle中添加相关的依赖
plugins {
    id 'java'
    id 'war'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenLocal()
    mavenCentral()
}

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.3.9'
    implementation group: 'org.springframework', name: 'spring-web', version: '5.3.14'
    implementation group: 'org.springframework', name: 'spring-webmvc', version: '5.3.13'
    compileOnly group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
    compileOnly group: 'javax.servlet', name: 'jsp-api', version: '2.0'
    testImplementation group: 'junit', name: 'junit', version: '4.12'
    testImplementation group: 'org.springframework', name: 'spring-test', version: '5.3.13'
}

test {
    useJUnitPlatform()
}
  1. 创建SpringMVC的配置文件并添加相应的约束
<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
  https://www.springframework.org/schema/mvc/spring-mvc.xsd                          

">

    <context:component-scan base-package="com.alibaba"/>

  <!--此配置表示开启注解支持,一旦开启,映射器和处理器都被加载进来-->
    <mvc:annotation-driven/>
    <mvc:default-servlet-handler/>
    <!--配置视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>    
    
</beans>
  1. 配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    
    <!--配置前置控制器-->
    <servlet>
        <servlet-name>springmvc</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>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

配置DispatcherServlet类,并完成相应的设置。

  1. 创建Controller类跳转视图
@Controller
public class GradleController {

   @GetMapping("/list")
    public String toList(Model model){
        model.addAttribute("msg","这是第一个用gradle创建出来的web项目");
        return "list";
    }
}

  • 使用@Controller注解进行实例化,表明这是Controller层的一个实例。
  • 创建一个跳转视图的方法,返回值为跳转视图的名称,传入model对象,使模型视图对象携带相应的参数。
  • 使用注解@GetMapping,定义返回视图的访问路径。可以在类的基础上添加父路径。
  1. 创建对应的页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
   <jsp:forward page="/list"></jsp:forward>

</body>
</html>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>List</title>
</head>
<body>

${msg}
</body>
</html>

当访问http://localhost:8080/项目名的时候就会跳转到该页面。

当到达该页面时,会自动跳转到http://localhost:8080/项目名/list.jsp中去,

  1. 测试结果

4往期文章

你不可不知的语言---JAVA

Java基本程序设计结构——数据类型

变量+运算=?

字符串详解

输入输出与流程

数组与大数

类初识

自定义类与时间类

方法参数与对象构造

包、注释及JAR文件

继承及其子类

Object类及其方法

泛型数组列表及包装类

IO流概述

XML文档与解析

Java多线程之JUC

JDBC初识

一文带你了解Maven

MyBatis竟如此简单?

JavaWeb-教你如何实现交互

IOC与AOP—>Spring


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存