0

当我为此运行命令“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"
    }
}

看来,gradle 不会忽略不存在的文件。任务“combineSrc”尚未运行,尚未创建文件....而且我无法运行任务“cobineSrc”首先创建文件。它是一个死胡同。我在做什么错以及如何使这项工作?谢谢

4

1 回答 1

1

您失败的原因是,您当前在配置 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"
        }
    }
}

希望有帮助!

勒内

于 2013-06-15T06:30:38.797 回答