gradle任务之间的三种关系和类型化任务

本文详细介绍了Gradle中tasks的三种关系:dependsOn、finalizedBy和mustRunAfter,并通过实例展示了它们的工作原理。同时,还探讨了Gradle的类型化任务,包括Copy、Delete和Zip,用于文件的复制、删除和压缩操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gradle 中tasks中的三种关系

第一种关系:dependsOn  表示一种tasks依赖于另一种tasks,要想执行另一种tasks,被依赖的要先执行。例如

task putOnSocks{

        doLast{

             println  "putting on socks."

        }

}

task putOnShoes{

      dependsOn "putOnSocks"

       doLast{

              println "putting on shoes."

       }

}

因为putOnShoes 依赖于putOnSocks,所以在运行$gradle putOnShoes 命令时,会先执行putOnSocks 再执行putOnShoes。

第二种关系:finalizedBy 表示的意思是:A is finalized by task B,task A runs, taskk B should be run afterwards.例如:

task eatBreakfask{

       finalizedBy "brushYourTeeth"

       doLast{

              println "Om Om now breakfast!"

      }

}

task brushYourTeeth{

      doLast{

             println "Brushie Brushie Brushie"

      }

}

在运行$gradle -q eatBreakfast 命令后,会先执行eatBerakfast任务,紧接着执行brushYourTeeth任务。

第三种关系:mustRunAfter,表示一个任务在一个任务之后执行,例如:

task takeShower{

       doLast{

             println “Taking a shower.”

       }

}

task putOnFragment{

        shouldRunAfter  "takeShower"

        doLast{

              println "Smellin fresh!"

       }

}

运行$gradle -q putOnFragment  takeShower命令会先执行takeShower,再执行putOnFragment。

类型化任务 type tasks

Copy  Delete   Zip

第一个Copy表示将一个文件夹下的东西复制到指定文件夹下,若这个指定的文件夹不存在,新建一个

如:task copyImages(type :Copy){

                 from ‘images’

                 into   'build'

       }

运行$gradle copyImages 会将images文件夹下的内容复制到build文件夹下(build文件夹是新建的)

第二个delete表示删除指定文件夹及其内容

如:task deleteBuild(type: Zip){

            delete 'build'

        }

运行$gradle deleteBuild 命令将删除build文件夹及其内容。

第三个Zip  分类压缩

如: task zipImageFolders(type: Zip){

                baseName = 'images'

                destinationDir = file('build')

                from ('images'){

                      include '*.jpg'

                      into 'jpeg'

                }

              from('images'){

                       include '*.gif'

                       into 'gif'

              }

       }

运行$gradle zipImageFolders命令表示  将images文件夹下的内容以.jpg结尾的放到jpeg文件夹下,以.gif结尾的放到gif文件夹下,将jpeg文件夹和gif文件夹进行压缩,压缩文件名为images.zip,将images.zip放到build文件夹下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值