Gradle的安装和使用
Posted Moon&&Dragon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle的安装和使用相关的知识,希望对你有一定的参考价值。
Gradle的安装和使用
文章目录
1 什么是Gradle
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,他抛弃掉了maven的繁琐的xml配置文件,使用Groovy语言去书写配置,整个配置文件更加的清晰,功能也更加强大。
Gradle使用的是Groovy动态语言,Groovy的基本的语法,类型,包结构和其他方面都与 Java 一样,Groovy 在这之上又增加了许多东西。但是和 Java 也有着共同点。
2 下载和安装(MAC)
2.1 官方下载地址
https://gradle.org/releases/
进入官方下载地址后,选择对应的版本,下载binary-only就可以,点击下载
2.2 mac中配置环境变量
-
确保java的环境存在,确保jdk的安装。
-
将下载下来的压缩包解压,把文件可以放在自己的目录下,一定要记住存放地址。比如我放在了下面的文件
-
打开终端来配置环境变量
输入
vi ~/.bash_profile
回车后后点击
i
进入编辑模式,输入一下内容,这里需要确保home的路径是正确的,输入之前存放gradle的目录GRADLE_HOME=/Users/xiaolong/java/gradle PATH=$PATH:$GRADLE_HOME/bin export GRADLE_HOME GRADLE_USER_HOME PATH
输入结束后点击esc键,进去指令模式,输入
:
唤醒输入条,输入wq保存,点击回车执行
source ~/.bash_profile
让配置生效 -
配置好以后在终端输入
gradle -v
,来查看gradle版本,如果正常打印版本,说明配置成功。
3 Gradle在IDEA中使用
打开IDEA后,新建项目,我们可以选择建一个Gradle项目,一路next
进入到项目后,打开IDEA的配置,找到gradle配置,设置如下配置
4 Groovy语言简单介绍
打开IDEA的工具,我们可以直接去书写Groovy代码
4.1 Hello Groovy
Groovy语言和java语言比较相似,相比起来更加的轻松,在Groovy语言中,我们可以在语句的结尾不添加分号,下面是打印语言的书写
// 打印语句
println("hello world");
// Groovy中可以省略结尾分号,和括号
println("hello groovy")
println "hello groovy"
4.2 定义一个变量
// def是弱类型的,Groovy会根据后面的值来赋予对应的类型
def i = 18
println i
// 定义字符串
def str = "你好"
println str
// 定义布尔类型
def flag = true
// if语句
if (flag){
println "flag为true"
}
// 定义int
int count = 0
// while语句
while(flag){
if (count==5){
break
}
println '你好'
count++
}
4.3 定义集合
// 定义集合
def list = ['a', 'b'];
// 往list中添加元素
list << 'c';
// 也可以使用add方法
list.add('d')
// for循环
for (j in 0..<list.size()) {
println list.get(j);
}
// 定义一个map
def map = ['key1':'value1','key2':'value2']
// 添加到map
map.key3 = 'value3'
map.put('key4','value4')
println map.key3
println map.get('key3')
// 得到entry集合
def set = map.entrySet()
// 迭代集合
def it = set.iterator()
while(it.hasNext()){
def entry = it.next()
// 获得key和value
def key = entry.key
def value = entry.value
println key+':'+value
}
4.4 闭包
// 闭包
// 闭包就是一段代码块,在gradle中主要是把闭包当作参数来使用
// 定义闭包
def b1 ={
println 'b1执行了';
}
def method1(Closure closure){
closure();
}
// 调用方法
method1(b1);
// 定义一个带参数的闭包
def b2 = {
v->
println "hello ${v}"
}
def method2(Closure closure,String str){
closure(str);
}
method2 (b2,"晓龙")
5 仓库的配置
gradle也和maven一样,可以配置本地的仓库,不过它却不像maven一样可以直接配置文件中配置本地仓库,它需要通过修改环境变量的值来对仓库的地址进行变化。
- 打开终端,在环境变量中添加
GRADLE_USER_HOME=/Users/...
,后面的值就是仓库的地址,这里可以直接写到maven的仓库。 - 打开idea中,在配置中查看如果仓库地址没有改变,将仓库地址修改
6 Gradle的使用
通过IDEA新建一个Gradle项目,在项目初始化化后,点击打开
build.gradle
build.gradle
/*
* 因为是java项目,这里的插件默认只有java
*/
plugins {
id 'java'
}
group 'com.moon'
version '1.0-SNAPSHOT'
/**
* 指定所使用的仓库
*/
repositories {
/*先从本地仓库寻找,再去中央仓库下载*/
mavenLocal()
/*表示使用中央仓库,此刻项目中所需要的jar包都会在中央仓库下载到本地仓库*/
mavenCentral()
}
/*gradle工程的jar包的坐标都在dependencies中放的
* 每一个jar包都有三个元素组成
* group:name:version
*
* 我们在添加jar包时都需要带上jar包的作用域
* */
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.2.12.RELEASE'
}
7 Gradle搭建web项目
我们创建的项目默认是一个java项目,项目结构也值有
main
和resource
,并没有webapp
,这时候我们可以手动去建一个web目录,但是这时候的web目录和我们web项目的目录并不一样,显然gradle并没有识别我们的目录,所以我们需要在配置文件中进行配置。
build.gradle
/* 我们只需要在插件中加入war的插件,这时候项目就会识别webapp */
plugins {
id 'java'
id 'war'
}
8 Gradle多模块项目
在多个模块中,我们的父配置文件可以将配置信息直接用于子配置文件,这时我们也需要在配置文件中设置
build.gradle
/*把所有的配置都写在allprojects{}代码块中,子配置文件就可以使用这些配置*/
allprojects {
group 'com.moon'
version '1.0-SNAPSHOT'
apply plugin: 'java'
repositories {
mavenLocal()
mavenCentral()
}
sourceCompatibility = '1.8'
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.2.12.RELEASE'
implementation group: 'org.aspectj', name: 'aspectjweaver', version: '1.9.6'
}
test {
useJUnitPlatform()
}
}
有了以上配置文件,那么在子配置文件中,只要是和父配置文件一致的内容,全部可以删除
在settings.gradle配置文件中,我们也可以看到当前项目的模块结构
/* 项目名称 */
rootProject.name = 'SpringAOP'
/* 模块名称 */
include 'SpringAOP-Dao'
include 'SpringAOP-Service'
include 'SpringAOP-Web'
include 'Spring-Aspect'
如果模块中想要项目去调用的话,只需要在子配置文件中声明,service模块需要调用dao模块
/* 配置文件需要写一行即可,其他配置使用父配置文件 */
dependencies {
implementation project(":SpringAOP-Dao")
}
以上是关于Gradle的安装和使用的主要内容,如果未能解决你的问题,请参考以下文章