Gradle构建项目

来个小栗子

/**构建脚本中默认是有一个project实例的,脚本中所有代码的默认作用域都是project**/
/**apply是project的一个方法,省略括号,plugin是其参数,值为'java';version是project的一个属性**/
/**repositories依然是project的一个方法,以闭包作为参数,闭包中调用mavenCentral()方法,dependencies也是如此**/

apply plugin 'java'
/**用以打包web工程的插件**/
apply plugin 'war'

version='0.1'

repositories {
    mavenCentral()
}

dependencies {
    compile 'commons-codec:commons-codec:1.6'
}

构建脚本概要

Gradle构建中有两个基本概念:project以及task。一个构建中至少包含一个项目,一个项目中可以有多个任务。在多项目构建中,一个项目可以依赖于其它的项目,并且形成一个依赖关系图,以保证它们按照需要的顺序执行。

项目

一个项目(project)代表一个正在构建的组件(比如一个jar或者一个war),当构建启动之后,Gradle会基于build.gradle实例化一个org.gradle.api.Project类,并且能够通过project变量使其隐式可用,即在构建脚本build.gradle中,方法、变量的调用都是在project上。
project有这样几个属性group、name、version。我们可以将这三个属性认为是一个project的标识,通过这三个属性可以唯一确定一个组件(jar)。
project的方法:apply、dependencies、repositories、task。看着理解就行了,如果使用过maven的话,是很简单的。apply可以指定应用哪些插件,dependencies指定需要依赖的组件,repositories指定仓库,task指定项目有哪些任务。
属性可以用这样两种方式配置:ext、gradle.properties中指定键值对。

Task

对应org.gradle.api.Task。主要包括任务动作和任务依赖。任务动作指定最小的工作单元,可以定义任务依赖于其他任务或者动作顺序、执行条件。
Task的方法:

  • dependsOn:声明任务依赖。
  • doFirst doLast<<:task是一个动作列表,doFirst表示在列表的最前端添加一个动作,doLast表示在列表的末尾添加。

再次解析

/**此处group相当于
    project.group='cn.incorp'
    也就是所谓的隐式调用了project.setGroup()方法
    **/
group 'cn.incorp'
version '1.0-SNAPSHOT'

/**我们当然是可以自定义任务,
    但在使用插件时,其自带了一些任务
    例如war插件会带有'war'任务
    java插件中带有:compileJava、processResources、classes、jar任务,jar依赖于前三个任务,因而执行jar会先执行前三者
    **/
apply plugin: 'java'
apply plugin: 'war'

sourceCompatibility = 1.8

repositories {
//    mavenCentral()
    jcenter()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.6'
    }

自定义任务

/**创建闭包**/
def createDir={
    path ->
    File file=new File(path);
    if(!file.exsits){
        dir.mkdirs();
    }
}

task makeDir(){
    def paths=['src/main/java','src/main/resources','src/test/java','src/test/resources'];
    /**创建动作**/
    doFirst{
        paths.forEach(createDir);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值