次の ant ビルド ファイルは、多数の JavaScript ファイルを連結しようとするもので、モジュラー コードを記述できますが、js ファイルは 1 つしか提供できません。このスクリプトは、プロジェクトにファイルを保存するたびに 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!とはどういう意味ですか? この場合の意味は?I の場合、目的のファイルへのパスが正しいことがわかります。では、なぜ Eclipse では機能するのに、com CLI では機能しないのでしょうか?
ありがとう!