gradle项目管理工具

gradle基础概述

gradle是一款类似于maven的项目构建工具,青出于蓝而青于蓝,不过它比maven更加强大。

gradle的下载可以在其官网上下载:http.gradle.org;gradle的使用是基于java语言的,所以配置gradle的环境前必须配置好java的环境,

gradle的环境变量跟maven配置一模一样,GRADLE_HOME,然后在path路径中加上bin就可以了,测试可以用gradle   -v命令即可测试。

gradle下面的bin目录中有两个文件:gradle跟gradle.bat,其中.bat是基于windows下的可配置文件,不带bat的是基于linux下的可配置文件,其他目录文件并无大用。

groovy概念:

  groovy是用于java虚拟机的一种敏捷动态语言,它是一种成熟的面向对象语言,既可以用作面向对象编程又可以用作脚本语言,使用该种语言不必编写过多代码

又具有闭包跟动态语言中的其他特性。

idea新建groovy测试项目步骤:

  file-new-project-Gradle【选择java】-填写GroupId跟 ArtifactId,这个跟maven一样是属于自定义的,然后下一步勾选Use auto-import,勾选这个可以在当需要一个

文件的时候项目中为我们自动下载,然后再勾选最后一个use local  gradle distribution,勾选这个可以自动识别我们本地安装的gradle环境,如果idea不能自动识别那就手动

选择下目录也是可以的,后面的比较简单不做介绍;这样一个项目就创建好了。

然后可以在tools-groovy console可以打开groovy的控制台跟代码编写区域

编写groovy代码

这里面编写正宗的java代码是么有任何问题的,但是根据groovy语言的特性,可以删除掉分号,删除掉getter/setter方法也是可以的,最后一个值作为返回值,所以把return删除也是可以的,

public class GroovyTest{
    private String name;
    private Integer age;
    public GroovyTest(String name,Integer age){
        //此处删掉分号
        this.name = name
        this.age = age;
    }
    public String getName(){
        //此处删掉reutrn
         this.name;
    }
    public void setName(String name){
        this.name = name;
    }
    //此处删掉setter跟getter方法
    /*public Integer getAge(){
        return this.age;
    }
    public void setAge(Integer age){
        this.age = age;
    }*/
}
GroovyTest groovyTest = new GroovyTest("张三",24);
println groovyTest.name

运行结果:Result: 张三

描述下跟java的区别,可以用点调用属性值,用==比较对象不会抛出空指针异常,比如:

GroovyTest groovyTest = new GroovyTest("张三",24);
GroovyTest groovyTest1 = null;
println groovyTest1 == groovyTest;
运行结果为false

Groovy的高效特性
/**
 * groovy的高效特性
 */
/**1.可选的类型定义
 * 下面这种def定义的version变量,后面的值是啥类型就是啥类型,它是弱类型的,跟JavaScript有点类似,不像java一样
 */
def version = 1;

/**
 * 2.assert语句
 * 这个他呀的没听懂
 * 反正两个version执行会报错
 */
//assert version == 2;

/**
 * 3.括号是可选的
 * 下面这个verson的括号去掉也没问题
 */
println (version);

/**
 * 4.字符串
 * 字符串有是那种表达形式:
 * s1  单引号:'',它仅仅是一个字符串
 * s2  双引号:"",它可以插入一个变量,写法如下
 * s3  三个三引号他可以换行
 */
def s1 = 'my name is wuyawei';
def name = "武亚伟";
def s2 = "my name is${name}";
def s3 = '''my
name is
 wuyawei''';
println s1;
println s2;
println s3;

/**
 * 5.集合API
 * 集合有两种形式,一个是List,一个是Map
 */
def myList = ['ant','maven'];
myList << 'gradle';   //给集合添加一个元素
assert myList.getClass() == ArrayList;   //把自定义的集合给ArrayList
assert myList.size() == 3;     //代码为报错,说明正确
println myList.getClass();     //用来查看他的类型:class java.util.ArrayList


def myMap = ['张三':'24岁','李四':'25岁'];
myMap.王五 = '26岁';   //给map中添加一个元素
println myMap.张三;     //根据map的key打印value
println myMap['王五'];     //根据map的key打印value
println myMap.getClass();   //用来查看他的类型:class java.util.LinkedHashMap

/**
 * 6.闭包
 *暂时不说了,这个貌似不常用
 */

 

Groovy基础知识【下面是一段groovy的脚本以及解析】


//构建脚本中默认都是有个Project实例的
/**
 * 不太懂,但是还是解析下这段代码
 * 其中apply跟version是project的属性,并且给定了他的值
 * repositorys跟dependencise是project的方法,mavengentral跟compile是他的闭包
 */
apply plugin:'java';
version '0.1';
repositorys {
    mavenGentral()
}
dependencies {
    compile 'commons-codec:commons-codec:1.6';
}

gradle有个缺陷就是我们创建好项目之后他没有为我们自动创建项目目录,可以手动创建也可以写脚本执行脚本创建

当创建好项目之后右边跟maven一样会有个gradle的按钮了,点击后:【详细的看下图】

其中task-build里面包含了gradle的构建命令,可以看到跟maven稍有不同

其中jar命令最为重要,它执行了将项目编译并且打包的操作,运行后会在项目下生成build文件夹--libs--下面就是生成的项目jar文件了,详细的看下图

如何给gradle添加插件呢?这个有了groovy语言后这个就变得异常简单了,我们只需要在构想项目的build.gradle文件夹下添加一行代码即可:看图

然后刷新gradle,就会发现gradle的命令行多了一个war的命令,运行war命令之后同样会打包成war包,目录跟jar的目录一样,

一半来说,war包是web项目需要达成的包形式,而后我们把war包放在tomcat的webapps目录下,运行tomcat自动解压war包,浏览器访问即可

 构建脚本介绍

在一个gradle中必须有至少一个项目,当然可以有多个project,一个项目中至少包含一个task,当然可以有多个任务,项目之间可以有依赖关系,任务之间也可以有依赖关系,这方面跟maven类似,

  project的常用属性跟方法:group,name,version等,通过这几个属性可以确定一个项目的唯一坐标,也就是确定唯一的组件,其中name属性跟maven中的artificId使用一样,其次还有apply,dependence,repository,task,其中apply表示依赖那个插件,比如:java,war等,dependence表示此项目的依赖,repository表示仓库,暂时不理解,task表示项目中需要执行的任务,这个是重点,task主要包含任务动作跟任务依赖,任务动作定义了一个最小的工作单元,可以依赖其他任务,工作序列跟执行条件等。任务中的方法有dependencOn,doFirst,doLast,其中doFirst表示任务之前要执行的,doLast相反,一个任务中可以执行多个doFirst或者doLast

posted @ 2017-10-14 23:36  青春不打烊  阅读(305)  评论(0编辑  收藏  举报