(没有这样的文件或目录)如何使gradle忽略不存在的文件

(没有这样的文件或目录)如何使gradle忽略不存在的文件,gradle,Gradle,当我运行命令“gradle tasks”或任何与此相关的事实时,我得到了以下错误: Caused by: java.io.FileNotFoundException: /Users/maxit/workspace/Backbone/modules/contact-form/public/build/contact-src.js (No such file or directory) 这是我的gradle构建文件: configurations { sshAntTask }

当我运行命令“gradle tasks”或任何与此相关的事实时,我得到了以下错误:

Caused by: java.io.FileNotFoundException: /Users/maxit/workspace/Backbone/modules/contact-form/public/build/contact-src.js (No such file or directory)
这是我的gradle构建文件:

configurations {
        sshAntTask
 }

dependencies {
        sshAntTask 'org.apache.ant:ant-jsch:1.7.1', 'jsch:jsch:0.1.29'
 }

// Pull the plugin from Maven Central
buildscript {

    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.eriwen:gradle-js-plugin:1.5.0'
    }
}

// Invoke the plugin
apply plugin: 'js'
apply plugin:'base'

def appName = "some"
def version = "0.0.1"
def jsSrcDir = 'public/js'

javascript.source {
    dev {
        js {
            srcDir jsSrcDir
            include "*.js"
            exclude "*.min.js"
        }
    }
    prod {
        js {
            srcDir jsSrcDir
            include "*.min.js"
        }
    }
}

task combineSrc(type: com.eriwen.gradle.js.tasks.CombineJsTask) {
    source = ["${projectDir}/public/templates/templates.js","${projectDir}/public/js/models/contact_model.js", "${projectDir}/public/js/views/contact_form_view.js", "${projectDir}/public/js/app.js" ]
    dest = file("${projectDir}/public/build/${appName}-src.js")
}

task appendJQuery(dependsOn: 'combineSrc') {
   String backboneSrc = file(new File("${projectDir}/public/build/${appName}-src.js")).text
   new File("${projectDir}/public/build/${appName}-jqueryWraped.js").withWriter{ out ->
       out << "(function(\$){" + file("${projectDir}/public/build/${appName}-src.js").text + "})(jQuery); \n"
    }
}
配置{
沙坦任务
}
依赖关系{
sshantask'org.apache.ant:antjsch:1.7.1','jsch:jsch:0.1.29'
}
//从Maven Central中拉出插件
构建脚本{
存储库{
mavenCentral()
}
依赖关系{
classpath'com.eriwen:gradle js插件:1.5.0'
}
}
//调用插件
应用插件:“js”
应用插件:'base'
def appName=“一些”
def version=“0.0.1”
def jsSrcDir='public/js'
javascript.source{
发展{
js{
srcDir jsSrcDir
包括“*.js”
排除“*.min.js”
}
}
刺激{
js{
srcDir jsSrcDir
包括“*.min.js”
}
}
}
任务组合SC(类型:com.eriwen.gradle.js.tasks.CombineJsTask){
source=[“${projectDir}/public/templates/templates.js”、“${projectDir}/public/js/models/contact_model.js”、“${projectDir}/public/js/app.js”、“${projectDir}/contact_form_view.js”]
dest=file(“${projectDir}/public/build/${appName}-src.js”)
}
任务appendJQuery(dependsOn:'combineSrc'){
字符串backboneSrc=file(新文件(“${projectDir}/public/build/${appName}-src.js”)).text
新文件(${projectDir}/public/build/${appName}-jquerywrapped.js”)。withWriter{out->

out失败的原因是,当前在appendJQuery任务配置期间所做的所有工作都应该在执行阶段完成

只需重构appendJQuery任务即可:

task appendJQuery(dependsOn: 'combineSrc') {
    doLast{
        String backboneSrc = file(new File("${projectDir}/public/build/${appName}-src.js")).text
        new File("${projectDir}/public/build/${appName}-jqueryWraped.js").withWriter{ out ->
            out << "(function(\$){" + file("${projectDir}/public/build/${appName}-src.js").text + "})(jQuery); \n"
        }
    }
}
task appendJQuery(dependsOn:'combinesc'){
多拉斯特{
字符串backboneSrc=file(新文件(“${projectDir}/public/build/${appName}-src.js”)).text
新文件(${projectDir}/public/build/${appName}-jquerywrapped.js”)。withWriter{out->

你为什么不测试一下文件的存在性,如果它不存在的话就早点退出呢?谢谢你,fge。你的建议肯定会有用的…谢谢你,雷内。你已经在两个问题上帮了大忙:)你会向一个初学者推荐什么样的来源来跟上Gradle?我希望你不介意我问。谢谢你没问题。我会推荐gradle用户指南。在gradleware网站上有很多在线研讨会()。此外,它还包含一些书籍推荐