仅在另一个任务不是最新的情况下运行任务

时间:2015-08-18 18:45:13

标签: gradle build

我有一项任务,我希望在基本的课程之后在gradle中运行。任务运行,但仅在它不是UP-TO-DATE时才会运行。

如何在gradle中对此进行建模?

我试图解决的问题是我有一个用于生成wsdl文件的wsgen任务。用作wsdl基础的源已更改,但wsgen任务仍然表示它是最新的,因为输出文件存在。如果构建/编译任务已运行且不是最新的,我想删除wsdl文件。

我们说我的任务如下:

task deleteGeneratedWsdl() {
  // delete file here.
}

// I Only want this to run if classes was not UP-TO-DATE
deleteGeneratedWsdl.dependsOn classes

这是我的wsgen任务:

task wsgen()  {
    def inputDir = file('build/classes/main')
    def dstDir = file('build/wsdl')
    def outputWsdl = file('build/wsdl/MyWSDL.wsdl')
    inputs.dir inputDir
    outputs.file outputWsdl
    doLast{
        dstDir.mkdirs()
        ant {
            taskdef(name:'wsgen',
                classname:'com.sun.tools.ws.ant.WsGen',
                classpath:configurations.jaxws.asPath)
            wsgen(keep:true,
                destdir: dstDir,
                genwsdl:'true',
                classpath:'build/classes/main;../UTIL_PROJ/build/classes/main',
                sei:'my.path.SourceFile')
        }
    }
}

wsgen.dependsOn classes
build.dependsOn wsgen

0 个答案:

没有答案