Gradle Task 入门 7 给task添加规则rule

需求

给之前的 release 任务添加规则,如果task name 是 release 那么输出正在release

代码

tasks.addRule("do when calling release") {
    String taskName ->
        if (taskName.startsWith('release')) {
            logger.quiet 'applying rule to the task'
        }
}

执行

//gradlew release
> Task :makeReleaseVersion
do task action ... ...
releaseVersion-prefix
releaseVersion-prefix

> Task :compileJava UP-TO-DATE
applying rule to the task

> Task :release
releasing the project...

如果使用 -i 参数,那么可以观察到,我们定义的rule会在编译时就被调用:

> Task :compileJava UP-TO-DATE
Resolving global dependency management for project 'demo'
//看这里:
applying rule to the task
Excluding []
Excluding []
Caching disabled for task ':compileJava' because:
  Build cache is disabled
Skipping task ':compileJava' as it is up-to-date.
:compileJava (Thread[Daemon worker Thread 4,5,main]) completed. Took 0.541 secs.
:processResources (Thread[Execution worker for ':',5,main]) started.

总结

我们可以运用rule,队代码进行一定的预处理,比如遇到参数 A 那么调用Task A,遇到参数 B 调用Task B

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容