私はApache ANTのいくつかのコードブロックに取り組んでいます
<target name="workload">
<script language="javascript"><![CDATA[
println("<div id='collapseOne' class='accordion-body collapse in'><div class='accordion-inner'><pre>"); ]]>
</script>
<apply dir="${dir.publish.ini}" executable="java" parallel="false" failonerror="false">
<fileset dir="${dir.ini}">
<include name="**/*.ini"/>
</fileset>
<arg value="-jar" />
<arg path="${tool}" />
<srcfile/>
</apply>
<script language="javascript"><![CDATA[ println("</pre></div></div>"); ]]></script>
</target>
使ってみると問題なく<antcall target="workload"/>
動いています。
このコード ブロックを最適化する必要があります。だから私は次のコードを使用してみました:
<macrodef name="workload">
<script language="javascript"><![CDATA[
println("<div id='collapseOne' class='accordion-body collapse in'><div class='accordion-inner'><pre>"); ]]>
</script>
<apply dir="${dir.publish.html}" executable="java" parallel="false" failonerror="false">
<fileset dir="${dir.ini}">
<include name="**/*.ini"/>
</fileset>
<arg value="-jar" />
<arg path="${tool}" />
<srcfile/>
</apply>
<script language="javascript"><![CDATA[ println("</pre></div></div>"); ]]></script>
</macrodef>
そして、私<antcall target="workload"/>
が電話したとき、次のエラーが表示されました:
macrodef doesn't support the nested "script" element.
これはマクロ定義がスクリプトをサポートしていません! どうすればこれを克服できますか?または build.xml コード ブロックを最適化するより良い方法はありますか?