Gradle构建工具从入门到精通(IDEA)

Gradle构建工具从入门到精通(IDEA)

官网下载压缩包,然后解压,配置本地环境变量。主要有下面两个:

GRADLE_HOME 是解压后的目录,

GRADLE_USER_HOME 的作用是让其他程序检测到本地.gradle文件夹的位置,

再把 %GRADLE_HOME%\bin 追加到 Path 环境变量中。

Gradle构建工具从入门到精通(IDEA)

然后在D:\.gradle目录下新建init.gradle文件,使用记事本打开粘贴下列代码:

allprojects{ repositories { def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) { project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL." remove repo } } } maven { url REPOSITORY_URL } } }

即可更换maven仓库地址为国内阿里云镜像。

2.Groovy语法

打开IDEA,点击Tools,找到Groovy Console,单击。

Gradle构建工具从入门到精通(IDEA)

输入一些Groovy语法,单击绿色按键运行程序。

Gradle构建工具从入门到精通(IDEA)

上面的程序省略了传参时的括号(),运行结果如下图:

Gradle构建工具从入门到精通(IDEA)

Groovy字符串的特性

'a':只是字符串

"a":里面可以连接变量$(b)

'''a''':里面的字符串可以换行

list:

def buildTools=['ant','maven'] //添加list buildTools << 'gradle'

map

def buildYears=['ant':2000,'maven':2004] //添加map buildYears.gardle=2009

闭包

闭包是一个代码块,语法如下:

{ [closureParameters -> ] statements }

其中[]内是可选的闭包参数,可省略。当闭包带有参数,就需要->来将参数和闭包体相分离。示例:

def c1={ v -> println v } 3.Gradle脚本

新建gradle Java项目的默认脚本文件内容:

plugins { id 'java' } group 'cn.zyzpp' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' }

解读脚本:

方法调用基本都省略了(),比如 group('cn.zyzpp')

还有给参数设值 X=x

使用闭包{}来作为参数执行repositories()、dependencies()方法,这俩方法的调用同样忽略了()的书写

4.IDEA使用Gradle

4.1 新建Gradle程序。

Gradle构建工具从入门到精通(IDEA)

插件命令说明:

jar用于将文件编译为jar包;

build会执行build.gradle文件,由于插件是Java,所以也会将文件编译为jar包;

>

clean会清除操作 ;

4.2 我们执行jar命令后,在libs目录下找到生成的jar包。

Gradle构建工具从入门到精通(IDEA)

4.3 执行命令行

java ->1.0-SNAPSHOT.jar cn.zyzpp.App

输出结果:

Gradle构建工具从入门到精通(IDEA)

5.打包web项目

新建Gradle项目时选择web,点击war命令进行打包。

Gradle构建工具从入门到精通(IDEA)

为什么会有war命令,因为plugins方法闭包参数内调用id(“war”)方法。

Gradle构建工具从入门到精通(IDEA)

6.projects、tasks

Gradle 里的任何东西都是基于这两个基础概念:

projects ( 项目 )

tasks ( 任务 )

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5688d1534a748be4bfed88b310a491ae.html