# 目录结构

src/main/java 放置正式代码目录
src/main/resource 放置正式配置文件目录
src/main/webapp 放置页面原色,比如 js,css,img,jsp,html 等等

src/test/java 放置单元测试代码目录
src/test/resource 放置单元测试配置文件目录

# 介绍 grovvy 编程语言

grovvy 基础


println("hello grovvy");

// grovvy 可以省略末尾的分号
prinln("hello grovvy")

// grovvy 可以省略括号
prinln "hello grovvy"

grovvy 变量


def i = 18
println i

复杂变量类型


// List
def list = ['a', 'b']
list << 'c'
list << 10
println list
println list.get(0)
println list.size()

// Map
def map = ['key1': 'vlaue1', 'key2': 'value2']
map.key3 = 'value3'
println map
println map.get('key2')

闭包
闭包就是一段代码块,在 gradle 中我们主要把闭包当作参数来使用


// 闭包
def fun = {
    println 'hello fun'
}

def method1(Closure closure) {
    closure()
}

method1(fun);


// 闭包(带参数)
def fun2 = {
    v -> println "hello ${v}"
}

def method2(Closure closure){
    closure "小马"
}

method2(fun2)


plugins {
    id 'java'
}

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

/**
 * 指定所使用的仓库,mavenCenteral()表示使用中央仓库,此刻项目中所需要的jar包都会默认从仓库下载到本地指定目录
 * mavenLocal()
 * mavenCentral()
 * 以上配置表示先从本地仓库寻找依赖,如果没有再从中央仓库下载
 *
 * mavenCentral()
 * 如果只配置中央仓库,表示直接从中央仓库下载,但是如果指定的下载位置已经有了,就不会再次下载
 *
 */
repositories {
    mavenLocal()
    mavenCentral()
}
/**
 * gradel 所有的jar包的坐标都在dependencies属性内放置
 *
 * 每一个jar包的坐标都有三个基本元素组成
 * group name version
 *
 * testCompile 表示该jar包在测试的时候起作用,该属性为jar包的作用域
 *
 * 我们在gradle里面添加坐标的时候,都要添加作用域
 */
dependencies {
//    testImplementation platform('org.junit:junit-bom:5.9.1')
//    testImplementation 'org.junit.jupiter:junit-jupiter'
    implementation group: 'org.springframework', name: 'spring-context', version: '5.3.29'
}

jar {
    manifest {
        attributes 'Main-Class': 'org.example.Main'
    }
}

test {
    useJUnitPlatform()
}