【Kotlin】Gradle的增量式更新

news/2024/5/20 1:15:55 标签: gradle, 增量式更新

现在目录下有三个java文件,我们要写一个task来保存所有文件名和路径
在这里插入图片描述
build.gradle.kts

plugins{
    java
}

//把所有源代码的文件名称记录下来
task("getSrcName",{
    doFirst{
        var srcdir = fileTree("src")
        var infotxt = file("info.txt")
        infotxt.writeText("")
        srcdir.forEach{
            if(it.isFile){
                infotxt.appendText(it.absolutePath)
                infotxt.appendText("\r\n")
            }
        }
    }
})

运行getSrcName任务
在这里插入图片描述
完成后,src目录下会增加一个info.txt
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
内置任务(如JavaCompile)声明了输入集合(Java源文件)和输出集合(class文件)。Gradle使用此信息来确定任务是否是最新的并且是否需要执行任何工作。如果没有任何输入或输出发生更改,Gradle可以跳过该任务。总之,我们将这种行为成为Gradle增量构建

我们来测试下,修改刚才的任务

   //把所有源代码的文件名称记录下来
task("getSrcName",{
    //指定了任务的输入
    inputs.dir("src")
    //指定了任务的输出
    outputs.file("info.txt")
    doFirst{
        ......
    }
})

在这里插入图片描述
当我们执行过一次编译任务之后,再次运行该task,如果发现它的输入没有任何改动,那么它编译后的结果肯定也是不变的,可以直接从缓存里获取输出,这样Gradle会标识该task为UP-TO-DATE,从而跳过该task的执行

现在修改Hello.java,已经没有了UP-TO-DATE标识了
在这里插入图片描述


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

相关文章

剑指offer 40. 最小的k个数字

剑指 Offer 40. 最小的k个数 - 力扣&#xff08;LeetCode&#xff09; (leetcode-cn.com) 目录 利用堆 代码 运行结果 利用快速排序 代码 运行结果 利用堆 代码 #define top 0 #define NOP 0 class Solution {int k; public:vector<int> getLeastNumbers(vector…

【Kotlin】Gradle依赖管理

文章目录普通程序员高级程序员测试时依赖gradle依赖冲突的解决普通程序员 commons-httpclient-3.0-src.zip下载 用Eclipse新建一个kotlin项目&#xff0c;同时新建一个libs文件夹&#xff0c;把jar包放入 然后右键jar包-Build Path-Add to Build Path 官网tutorial 按照官方…

剑指offer II. 数据流的第K大数值

剑指 Offer II 059. 数据流的第 K 大数值 - 力扣&#xff08;LeetCode&#xff09; (leetcode-cn.com) 运行结果 代码 #define MIN 0x80000000 class KthLargest {int* minHeap;int K; public:KthLargest(int k, vector<int>& nums) {K k;minHeap new int[k 1];…

你说的H5到底是什么,跟Html有什么关系,能吃吗

总跟我说H5、H5的&#xff0c;我特么根本不知道你在说什么好吗…如果你身边有人整天说着 h5&#xff0c;就可以问问他&#xff0c;究竟什么是 h5&#xff0c;然后甩给他以下答案 HTML5 我们摘抄W3school中的段落 什么是HTML5 HTML5是下一代的 HTML&#xff0c;HTML5 将成为 …

原生开发、H5开发与混合开发的区别

文章目录前言三种方式分别的优缺点原生开发Web APP (HTML5&#xff09;开发混合&#xff08;原生H5&#xff09;开发三种方式对比前言 移动应用开发的方式&#xff0c;目前主要有三种&#xff1a; Native App&#xff1a; 本地应用程序&#xff08;原生App&#xff09; Web Ap…

混合开发

Hybrid App主要以JSNative两者相互调用为主&#xff0c;从开发层面实现“一次开发&#xff0c;多处运行”的机制&#xff0c;成为真正适合跨平台的开发。Hybrid App兼具了Native App良好用户体验的优势&#xff0c;也兼具了Web App使用HTML5跨平台开发低成本的优势 目前已经有…

【Kotlin】Gradle自定义扩展

文章目录gradle调用内部扩展deletecopygradle调用外部扩展gradle调用java最后gradle调用内部扩展 官方文档 delete 找到任务类型Task types&#xff0c;找到delete 页面中有groovy语法的示例代码&#xff0c;这里展示kotlin语法 假设main文件夹下有temp目录&#xff0c;里…

【Kotlin】坦克大战1:窗体绘制

文章目录项目搭建游戏的基本内容窗体设计项目搭建 新建一个项目 引入坦克大战游戏引擎&#xff0c;按照github上的说明添加依赖即可&#xff0c;添加成功后 新建MyWindow.kt /*** 窗体* 继承游戏引擎中的窗体*/ class MyWindow:Window(){override fun onCreate() {}over…