Ant 如何生成蚂蚁目标?
我希望能够生成多个Ant目标,如下所示:Ant 如何生成蚂蚁目标?,ant,ant-contrib,Ant,Ant Contrib,我希望能够生成多个Ant目标,如下所示: <property name="grunt_tasks" value="jsp,css,js,img" /> <foreach list="${grunt_tasks}" param="task"> <target name="${task}"> <exec executable="grunt" failonerror="true"> <arg line
<property name="grunt_tasks" value="jsp,css,js,img" />
<foreach list="${grunt_tasks}" param="task">
<target name="${task}">
<exec executable="grunt" failonerror="true">
<arg line="${task}" />
</exec>
</target>
</foreach>
<for list="${grunt_tasks}" param="task">
<sequential>
<script language="javascript"><![CDATA[
importClass(org.apache.tools.ant.Target);
var exec = project.createTask( "exec" );
exec.setExecutable( "grunt" );
exec.setFailonerror( true );
var arg = exec.createArg( );
arg.setValue( "@{task}" );
var target = new Target();
target.addTask( exec );
target.setName( "@{task}" );
project.addOrReplaceTarget( target );
]]></script>
</sequential>
</for>
允许我运行antjsp
或antjs
但是,此代码失败,因为无法在foreach标记中放置目标标记
如何实现这一点?您可以通过多种方式动态添加目标。这里有一个建议:
<property name="mybuild" value="mybuild.xml" />
<property name="grunt_tasks" value="jsp,css,js,img" />
<echo message="<project>" file="${mybuild}" />
<for list="${grunt_tasks}" param="task">
<sequential>
<echo file="${mybuild}" append="yes"><![CDATA[
<target name="@{task}">
<exec executable="grunt" failonerror="true">
<arg line="@{task}" />
</exec>
</target>
]]></echo>
</sequential>
</for>
<echo message="</project>" file="${mybuild}" append="yes"/>
<import file="${mybuild}" />
我并不热衷于生成另一个xml文件来实现这一点。我想我宁愿在build.xml中经历一些重复。我已经查看了脚本任务,但没有找到任何说明如何创建目标的文档。@Matthew添加了脚本方法。使用API的文档是源代码本身。是阅读的一种方式。我在阅读过程中学到了一些东西-load('nashorn:mozilla_compat.js');//因为我使用的是Java 8并使用importClass,换句话说,Rhino compatibility exec.createArg().setValue(“--target_env=“+target_env”);//由于某些原因,ant属性可直接用于js,尽管任务参数不可用。ug,格式化不是我的强项