gradle的使用2

1.对于项目中的settings.gradle中配置工程中依赖的子工程

//表示包含的子项目名
include ":build"  
//包含子项目的位置,如果不指定,就会默认当前目录。
project(':build').projectDir=new File(rootDir,"build")

2.对于项目project中的build.gradle,是Project的构建入口,可以配置版本,插件,依赖等。

//配置所有工程的依赖库下载仓库

allprojects {
 repositories {
       google()
 	   jcenter()
 }
}

//配置子工程的依赖库下载仓库

subprojects{
  repositories {
  	  google()
 	   jcenter()
  }
}

3.每个project由多个Task组成,一个Task就是一个原子性操作。
Task捡起来像一个关键字,其实是Project的一个函数,原型为create(String name,Closure configureClosure),第一个参数就是任务名,第二个参数就是闭包。

task hello{
   doFirst{
      println "啦啦"
  }
}

可以写成下面

tasks.create("hello")  {
    doFirst{
        println "啦啦"
   }
}

4.任务依赖,使用dependsOn进行依赖,当执行hello2的时候,先执行hello。
使用dependsOn可以接受多个依赖任务作为参数。
第一种写法

tasks.create("hello")  {
   doFirst{
        println "啦啦"
  }
}

task hello2(dependsOn: hello){
    doLast{
    println "啦啦222"
   }
}

第二种写法

tasks.create("hello")  {
  doFirst{
       println "啦啦"
   }
}


task hello2(dependsOn: hello){
   doLast{
   println "啦啦222"
  }
}

task hello3{
  dependsOn hello,hello2
  doLast{
      println "啦啦333"
  }
}

5.通过任务名去访问方法属性并对其进行控制
project在创建该任务的时候,同时把该任务对应的任务名注册为Project的一个属性,类型为Task

task hello4{
}
hello4.doLast{
   println project.hasProperty("hello4")  //true
}

6.自定义属性
添加额外的属性,通过队形属性的ext属性可以实现。添加之后可以通过ext属性对自定义属性读取和设置,如果有多个属性,可以通过ext代码块。可以跨project,跨task进行访问自定义属性。只要你能访问到这些属性所属的对象,那么这些属性就能被访问到。如果是跨project进行访问ext,那么就可以通过rootProject.ext.support[“junit”]等方式进行访问。

ext.age=12
ext{
    phone="123"
   address=""
}

task hello5{
    println age
    println phone
    address="嗯嗯嗯"
   println address
}

使用sourceSets

sourceSets.all{
	//自定义一个变量
   ext.resourcesDir=""
}

//java插件引入了一个概念叫做SourceSets,通过修改SourceSets中的属性,
//可以指定哪些源文件(或文件夹下的源文件)要被编译,哪些源文件要被排除。

sourceSets{
   main{
      resourcesDir="main/res"
  }
  test{
      resourcesDir="test/res"
   }
}


task hello5{
   sourceSets.each{
     println it
     println "${it.name}的资源文件${it.resourcesDir}"
  }
}

7.获取时间

def buildTime(){
  def data=new Date()
   def formatDate=data.format('yyyyMMdd')
   return formatDate
}

task hello6{
    println "时间=="+buildTime()
}

8.创建task的三种方式

def Task t1=task(t1)

t1.doLast{
    println "创建方法原型 Task task(String name)"
}

/**task参数中的map的可用配置
    type :基于一个存在的Task来创建,相当于继承
    overwrite:是否替换存在的Task,和type配合使用
    dependsOn:用于配置任务依赖
    action:添加到任务中的一个Action或一个闭包
    description:配置任务描述
    group:配置任务分组
*/
def Task t2=task(t2,group:"eee")

t2.doLast{
    println "创建方法原型 Task task(String name,Map args)"
}

task t3{
    description "演示"
   doLast{
       println "创建方法原型:Task task(String name,Closure closure),任务描述:${description}"
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值