美文网首页项目构建
Gradle Task 入门 5 定制化task

Gradle Task 入门 5 定制化task

作者: 这个世界是虚拟的 | 来源:发表于2020-08-06 13:55 被阅读0次

需求

我们这个task就是修改配置文件并保存,我们将使用自己定义的task来实现这个需求

定义Task类

继续沿用我们之前定义的类MyTag, 并加入了一个新的变量release

class MyTag {
    String prefix;
    String postfix;
    Boolean release;

    MyTag(String prefix, String postfix, Boolean release) {
        this.prefix = prefix
        this.postfix = postfix
        this.release = release
    }

    @Override
    String toString() {
        return "MyTag{" +
                "prefix='" + prefix + '\'' +
                ", postfix='" + postfix + '\'' +
                ", release=" + release +
                '}';
    }
}

要点:

class ReleaseVersionTask extends DefaultTask {
    @Input
    Boolean release
    @OutputFile
    File destFile

    ReleaseVersionTask() {
        this.group = "versioning"
        this.description = "Release Version Class"
    }

    @TaskAction
    void start() {
        println "do task action ... ..."

        project.ext.myNewTag.release = true;
        Properties properties = new Properties()
        project.ext.myTagFile.withInputStream {
            stream -> properties.load(stream)
        }
        println properties.prefix.toString()

        properties.setProperty('prefix', 'releaseVersion-prefix')
        properties.setProperty('postfix', 'releaseVersion-postfix')
        properties.setProperty('release', 'true')

        println properties.prefix.toString()

        project.ext.myTagFile.withWriter {
            properties.store(it, null)
        }
    }

定义Task

task makeReleaseVersion(type: ReleaseVersionTask) {
    release = project.ext.myNewTag.release
    destFile = myTagFile
}

执行

我们现在的配置文件mytag.properies内容为

release=true
prefix=heng
postfix=ha

然后执行我们的自己的task

//gradlew makeReleaseVersion
//得到结果:
> Task :makeReleaseVersion
do task action ... ...
heng
releaseVersion-prefix

再次查看我们的配置,也得到了修改.

相关文章

  • Gradle Task 入门 5 定制化task

    需求 我们这个task就是修改配置文件并保存,我们将使用自己定义的task来实现这个需求 定义Task类 继续沿用...

  • Gradle 自定义Task

    Gradle 自定义Task 自定义task 实现自动化系统签名,push安装,重启设备等操作 Task 实现 a...

  • gradle task入门

    gradle task入门 //源码来自w3cschool https://www.w3cschool.cn/gr...

  • Gradle学习

    Gradle基础 1、Task 在Gradle中一个原子性的操作叫做task,可以简单理解为task是Gradle...

  • Gradle Task 学习

    Task Task是Gradle中的最小执行单元,要学gradle那么对Task必须要了解先看一下 Task的构造...

  • Gradle:Task # finalizedBy()

    Gradle:Task # finalizedBy() 这篇文章对Gradle的Task对象的finalizedB...

  • Gradle Task编写

    Task基本语法 执行task 执行多个task 每个task只会执行一次,所以 gradle test test...

  • 创建Task

    Task 调用Project的task()方法创建Task在使用Gradle时,创建Task最常见的方式便是: 这...

  • 生成带assets文件夹的jar包

    (1)编写相应task 在build.gradle文件夹加入buildMyJar task task buildJ...

  • Idea插件开发中使用ProGuard混淆代码

    配置gradle插件 gradle配置ProGuard插件 添加混淆task 配置task依赖关系 配置混淆文件 ...

网友评论

    本文标题:Gradle Task 入门 5 定制化task

    本文链接:https://www.haomeiwen.com/subject/lxvkrktx.html