gradle clean jar失败,因为clean删除了以后需要的目录

时间:2013-12-01 01:01:07

标签: gradle

我有一个build.gradle,代码如下:

task someDir(type: Exec) {
    outputs.files "someDir"
    mkdir "someDir"
}

jar {
    dependsOn "someDir"
    // needs to put someFile in someDir
    ...
}

clean << {
     project.delete "someDir"
}

当我运行gradle jar时,它有效。当我运行gradle clean jar时,它失败,因为someDir不存在。看起来几乎像gradle正在检查someDir是否只存在于最初,而不是在运行实际依赖它的目标之前。这是为什么?我怎样才能与其他目标一起清洁?在我做出改变之前,我喜欢重建一切。

1 个答案:

答案 0 :(得分:2)

此构建脚本的问题是someDir目录是在配置阶段创建的,而不是在someDir任务运行时创建的。要解决此问题,请使用mkdir "someDir"doFirst { ... }包裹doLast { ... }。还不清楚为什么someDir具有类型Exec。也许你没有展示其余的配置?