Gradle 构建脚本基础

news/2024/5/20 1:02:12 标签: gradle

Setting 文件

  • Setting文件大多是为了配置子工程,一个根工程可以包含多个Module也就是子工程,子工程只有在Setting文件里配置类Gradl才会识别,才会在构建的时候被包含进去

Build文件

  • 每个Project都会有一个Build文件,该文件是project构建的入口,可以在此对project进行配置,配置版本,依赖库等等

Project和Tasks

  • 一个Project又包含多个Task,即多中操作,比如打包一个jar包,复制一份文件,编译代码等等
  • 创建任务的两种方式如下 (两种方式仅仅是方法名不同,但是作用是相同的) :
task testTask1{
    doFirst {
        println("do first")
    }
    
    doLast {
        println("do last")
    }
}


tasks.create("testTask2") {
    doFirst {
        println("do first")
    }
    
    doLast {
        println("do last")
    }
}

任务依赖

  • 任务之间也存在依赖关系,方便我们控制业务的执行顺序
task testHello {
    println("Hello")
}


task testWorld {
    println("world")
}


task run{
    dependsOn testHello, testWorld
    doLast {
        println("test depend")
    }
}

执行gradlew run
结果
> Configure project :
Hello
world

> Task :run
test depend

任务之间通过API 控制交互

  • 我们可以使用方法、属性和任务名对任务进行重新配置或者引入新的依赖等操作
task runTest  {
    doFirst {
        println(project.hasProperty('testWorld'))
    }
    doLast {
        println("test depend")
    }
}

自定义属性

ext.age = 18
ext {
    name = "wjx"
    email = "jianxianwang198@163.com"
}


task testProperty {
    println("age: ${age}")
    println("name: ${name}")
    println("email: ${email}")
}

Hello
world
age: 18
name: testProperty
email: jianxianwang198@163.com

http://www.niftyadmin.cn/n/1587805.html

相关文章

在微信网页版下用Chrome控制台发送消息

之前没仔细研究过微信网页版&#xff0c;今天才发现它的前端是用AngularJS做的。的确&#xff0c;这么复杂且典型的One-Page-One-Application应用是必须得用前端框架才行了。 微信的HTML代码质量狠高&#xff0c;所有的消息内容都在<pre>这个标签下&#xff0c;最后一个&…

Gradle 命令操作

常规操作 – 使用帮助 Gradle Wrapper帮助命令行 ./gradlew -? ./gradlew -h ./gradlew -help查看所有可执行的Tasks ./gradlew tasks // 会以分组的形式列出所有的Task列表Gradle Help任务 ./gradlew help --task //显示tasks任务的帮助信息&#xff1a;类型、分组信息、可…

数据结构与算法之——————————线性表②链表之单向链表

单向链表 单向链表也叫单链表&#xff0c;是链表中最简单的一种形式&#xff0c;它的每个节点包含两个域&#xff0c;一个信息域&#xff08;元素域&#xff09;和一个链接域。这个链接指向链表中的下一个节点&#xff0c;而最后一个节点的链接域则指向一个空值。 表元素域ele…

【线上直播】《政务大数据治理》

分享讲师&#xff1a;马玉玺讲师简介&#xff1a;大数据业务专家。现任职深圳华傲数据高级项目负责人&#xff0c;高级技术经理&#xff0c;负责大数据项目管理及大数据业务架构。近8年大数据开发经验&#xff0c;5年大数据项目管理经验。对Spark、hadoop等有很深的研究以及丰富…

Android 使用Navigation 跳转页面时发生crash

crash问题日志 Fatal Exception: java.lang.IllegalArgumentException navigation destination com.xxx.yyy:id/action_aFragment_to_bFragment is unknown to this NavController 解决 // 在执行跳转语句之前使用下面方法对当前fragment 进行判断 if (Navigation.findNavCo…

django中celery的配置及使用

celery 涉及到三个东西&#xff1a;异步的项目、worker&#xff08;执行异步任务的进程&#xff0c;其作用是从redis中获取异步任务并执行&#xff09;、broker&#xff08;代理人&#xff0c;这里用redis做broker&#xff0c;其作用是将需要执行异步或定时任务添加到redis队列…

基于Dynomite的分布式延迟队列

2019独角兽企业重金招聘Python工程师标准>>> 在Netflix的平台上运行着许多的业务流程&#xff0c;这些流程的任务是通过异步编排进行驱动&#xff0c;现在我们要实现一个分布式延迟队列&#xff0c;这个延迟队列具有如下特点&#xff1a; 分布式不用外部的锁机制高并…

View.post() 分析

view.post() 使用目的 获取View的属性子线程处理耗时任务&#xff0c;并抛到主线程执行 view.post()分析 首先在onCreate()方法中使用post()方法 override fun onCreate(savedInstanceState: Bundle?) {Log.d(TAG, "onCreate")super.onCreate(savedInstanceStat…