在IDEA中创建Gradle项目

目录树如图

Groovy

  • 基于Java的脚本语言

IDEA中使用

  • 可以省略最后语句的分号
  • 可以省略括号
println("hello");
def i = "hi";
def list = ["a", 2];
def map = ['k1': 'a', 'k2': '2'];
map.k3 = '3';
println(list.get(1));
println(map.get('k3'))

闭包

闭包是一个短的匿名代码块。它通常跨越几行代码。一个方法甚至可以将代码块作为参数。它们是匿名的。

案例一:

//定义一个闭包
def b = {
    println("hello")
}

//定义一个方法 传入闭包类型变量
def c(Closure closure) {
    closure()
}

c(b)

输出

hello

案例二:

//带有参数的闭包
def b={
    v ->
        println("hello ${v}")
}
def c(Closure closure){
    closure("传入参数")
}
c(b)

输出

hello 传入参数

配置Gradle

https://mvnrepository.com/在仓库中可以找到坐标

使Gradle使用本地Maven仓库

//指定使用的仓库
//mavenCentral()表示表示使用中央仓库
//以下配置表示先在本地仓库找,再在中央仓库找
repositories {
    mavenLocal()
    mavenCentral()
}

build.gradle配置

plugins {
    id 'java'
}

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

//指定使用的仓库
//mavenCentral()表示表示使用中央仓库
//以下配置表示先在本地仓库找,再在中央仓库找
repositories {
    mavenLocal()
    mavenCentral()
}

//Gradle工程的JAR包坐标在dependencies属性配置
//坐标由三个元素组成group,name,version
//testCompile表示该JAR包在测试时起作用
dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'io.vertx', name: 'vertx-circuit-breaker', version: '4.0.0-milestone4'
}

Web工程构建

  • Gradle 为 Web 开发提供了两个主要插件,War plugin 和 Jetty plugin。 其中 War plugin 继承自 Java plugin,可以用来打 war 包。jetty plugin 继承自 War plugin 作为工程部署的容器。
  1. 需要打包 War 文件,需要在脚本中使用 War plugin:build.gradle`apply plugin: 'war'`
  2. 新建 webapp文件夹

拆分和聚合

  1. 创建父工程
  2. 右键父工程新建 Modle
  3. settings.gradle中会自动`子工程
  4. 父工程的 build.gradle创建 allprojects {}子工程会共用
  5. 子工程之间引用

    dependencies {
    compile project(":引用模块工程名")
    }



扫一扫在手机打开当前页