gpt4 book ai didi

javascript - Ant 构建以连接 JavaScript : Build Fail

转载 作者:行者123 更新时间:2023-11-29 18:21:33 24 4
gpt4 key购买 nike

我有以下 ant 构建文件,它试图连接一堆 JavaScript 文件,以便我可以编写模块化代码,但只提供一个 js 文件。每次我在项目中保存文件时,Eclipse 都会自动运行该脚本,这大大简化了我的工作流程。

我的问题

当 Eclipse 执行构建脚本时,一切正常。如果我尝试直接从命令行运行 ant,我会收到一条错误消息:

/home/formigone/html5voodoo/build.xml:38: file attribute is null!

这是我的脚本:

<?xml version="1.0" encoding="UTF-8"?>
<project name="Build example" default="all" basedir=".">
// ...
<property name="SRC_JS_DIR" value="${basedir}/js/hvdoo" />
<property name="DIST_JS_DIR" value="${basedir}/js/out" />
<property name="DIST_JS_TMP" value="${basedir}/js/out/tmp" />

// ...

<property name="JS_OUT_DEF" value="${DIST_JS_TMP}/__def.js" />
<property name="JS_OUT_CODE" value="${DIST_JS_TMP}/__code.js" />
<property name="JS_OUT_LINKED" value="${DIST_JS_TMP}/__out.js" />

<target name="makeDef">
<concat destfile="${JS_OUT_DEF}">
<fileset dir="${SRC_JS_DIR}"
includes="**/__def.js" />
</concat>
</target>

<target name="makeCode">
<concat destfile="${JS_OUT_CODE}">
<fileset dir="${SRC_JS_DIR}"
includes="**/*.js"
excludes="**/__*.js" />
</concat>
</target>

<target name="link">
<concat destfile="${JS_OUT_LINKED}">
<file name="${JS_OUT_DEF}" />
<file name="${JS_OUT_CODE}" />
</concat>
</target>

// ...

<target name="quick" depends="makeDef, makeCode, linkToOut"></target>

(我故意遗漏了这里没有问题的脚本的其他部分)

错误消息指的是链接目标中的这一行:

<concat destfile="${JS_OUT_LINKED}">

在这种情况下,file attribute is null! 是什么意思?如果我,我可以看到我想要的文件的路径是正确的。那么,为什么它可以在 Eclipse 中运行,而不能在 com CLI 中运行?

谢谢!

最佳答案

原来问题是 <concat> block 缺少 <filelist>包装单个文件。现在工作脚本如下所示:

<target name="link">
<concat destfile="${JS_OUT_LINKED}">
<filelist dir="${DIST_JS_TMP}">
<file name="${JS_OUT_DEF}" />
<file name="${JS_OUT_CODE}" />
</filelist>
</concat>
</target>

我仍然不确定 Eclipse 如何让脚本运行,但我想我不太关心,因为它可以双向工作。

关于javascript - Ant 构建以连接 JavaScript : Build Fail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18163651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com