Gradle 项目目录结构
src/*
源码及测试目录
src/main/java
正式代码目录
src/main/resouces
放置正式文件目录,
src/test/java
放置单元测试目录(项目编译打包时不会编译这部分)
src/test/resources
放置单元测试目录
src/main/webapp
web项目,放置页面元素,比如:js,css,img,jsp,html等等
build/**
,打包编译目录
build/classes/**
源码编译文件
build/libs/**
项目打成jar包
resources/**
配置文件
tmp/**
临时文件
Grovvy基础语法
- 定义普通变量
//groovy可以省略括号
//def 是弱类型,grovy会自动根据情况来给变量赋予对应的类型
def s = "xianmin"
- 定义集合
//list,单引号,双引号都可以
def mylist = ['a','b']
//1.1 添加元素
list << 'c'
//1.2 取出元素
println list.get(2)
//2. 定义map
def map = ['key1':'value1','key2':'value2']
//2.1 添加键值对
map.key3='value3'
//2.2 打印出key3的值
println map.get('key3')
闭包
- 闭包
- 闭包其实就是一段代码块,在gradle中,主要把闭包当参数来使用,常见参数是一个方法
- 定义方法
//1.定义一个闭包
def b1 = {
println "hello b1"
}
//2.定义方法,方法里需要闭包类型的参数
def method1(Closure closure){
closure()
}
//3. 调用方法
method1(b1)
//1. 定义带参闭包
def +b2 = {
v ->
println "hello ${v}"
}
//2 定义方法,方法里需要闭包类型的参数
def method2(Closure closure){
closure("xiaoma")}
//3 调用
method2(b2)
Gradle配置文件介绍
build.gradle
- 通用配置文件
- 插件(apply)
apply plugin: 'java'
该插件将项目编译成普通java项目
apply plugin: 'war'
该插件用与web项目,会将项目
仓库配置
- idea中默认放置jar包的本地仓库
Gradle user home
:.gradle
- 将maven本地仓库路径放置到
GRADLE_USER_HOME
环境变量中
单个项目配置
- 在build.gradle中添加以下仓库信息
- 外部的repositories声明使用的仓库地址,优先从本地查找依赖,没找到再从阿里镜像源查找,都找不到则从中央仓库找
- 外部的dependencies声明所需的依赖jar包,此处的包是
作用与Java项目的JVM中
需要指定生命周期
- buildscript中的依赖会配置在属于
gradle的JVM中
,内部
配置repositories
与dependencies
buildscript {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
}
dependencies {
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
//...
repositories {
mavenLocal()
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile group: 'org.springframework', name: 'spring-context', version: '5.2.4.RELEASE'
compile group: 'org.springframework', name: 'spring-core', version: '5.2.4.RELEASE'
compile group: 'org.springframework', name: 'spring-webmvc', version: '5.2.4.RELEASE'
扩展
- 配置tomcat,Deployment添加web项目的启动方式后,就可以启动项目了
web项目
单应用
- 在build.gradle添加插件
apply plugin: 'war'
模块拆分与聚合
- 普通模块转变为web模块,只需在
对应模块下的 build.gradle
中添加插件apply plugin: 'war'
- 所有模块信息,在父工程的
setting.gradle
中可以看见
- 通用依赖。在父工程的build.gradle中将公共依赖或插件添加到
allprojects
中,各子模块只需要配置自己需要的jar包依赖或插件
- 模块间引用,如service模块需要引用dao模块,在
service模块的build.gradle
中
//compile为作用域
//project()参数为引用模块名称,格式 project(":模块名称")
dependencies{
compile project(":gradle_dao")
}