任务前等待project.copy

时间:2019-01-16 12:10:37

标签: gradle gradle-plugin

我似乎误会了复制任务的工作方式。 我知道在常规构建脚本中,您必须使用doLastdoFisrt来等待执行阶段。我的问题不在这里,它是相似的,但在类的上下文中。

我的课程不是来自Copy类型的,但是我要添加一个doFirst来调用copy。

我要先执行该命令并不重要,下面的过程仅在第二次运行(复制完成后)中才找到文件。

是的,我确实尝试构建第二个任务,并将副本置于操作@TaskAction中,而第二个任务有一个dependsOn

在我看来,生命周期阶段不是错误的情况,这种行为似乎更多是关于project.copy是异步的。但是,我在任何地方都找不到此信息。

目前,我在任务构造器上有此内容

doFirst { copy() }
doLast { normalize() }

示例

class Example extends DefaultTask {

        Example() {
            group = 'example'
            description = 'big copy, but I need to wait'

            doFirst { copy() }
            doLast { normalize() }
        }

        void copy() {
            project.copy {
                def zipFile = zip
                def outputDir = dir

                from project.zipTree(zipFile)
                into outputDir
            }
        }

        void normalize() {

        } 
}

0 个答案:

没有答案