如何解决ANT:使用条件标记<IF>
| 我想做这样的事情<target name=\"clean\" description=\"clean\">
<if>
<available file=\"${build}\" type=\"dir\" />
<then>
<delete dir=\"${build}\" />
</then>
</if>
</target>
根据在stackoverflow.com上找到的建议,我下载了ant-contrib-1.0b3.jar并将其放入我的路径
另外,在Ant Build配置下,在类路径中,我有
运行我的ANT脚本时,我仍然得到
BUILD FAILED
C:\\Repositories\\blah\\build.xml:60: Problem: failed to create task or type if
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
我想念什么?请指教
解决方法
或者,可以在ANT脚本中包含以下行
<taskdef resource=\"net/sf/antcontrib/antlib.xml\" />
只要ant-contribs
在您的路径中,就不需要其他
此解决方案比较干净,因为它可以访问所有标签,而不仅仅是手动指定的标签
, 以这种方式解决了相同的问题。
我在buid XML文件的开头放置了以下几行:
<taskdef resource=\"net/sf/antcontrib/antlib.xml\">
<classpath>
<pathelement location=\"your/path/to/ant-contrib-${version}.jar\" />
</classpath>
</taskdef>
, 标准的蚂蚁方式可能是=
<target name=\"check\">
<condition property=\"delbuild\">
<available file=\"${build}\" type=\"dir\"/>
</condition>
</target>
<target name=\"delbuild\" depends=\"check\" if=\"delbuild\">
<delete dir=\"${build}\"/>
<!-- .. -->
</target>
Ant插件Flaka的片段,是antcontrib的最新替代品。照常通过Preferences |在Eclipse中安装蚂蚁运行时全球条目| ant-flaka-1.02.-1.02.jar =
<project xmlns:fl=\"antlib:it.haefelinger.flaka\">
<!-- some standalone if construct -->
<fl:when test=\" \'${build}\'.isdir \">
<delete dir=\"${build}\"/>
</fl:when>
<!-- some if/then/else construct -->
<fl:choose>
<!-- if -->
<when test=\" \'${buildtype}\' eq \'prod\' \">
<!-- then -->
<echo>..starting ProductionBuild</echo>
</when>
<when test=\" \'${buildtype}\' eq \'test\' \">
<!-- then -->
<echo>..starting TestBuild</echo>
</when>
<!-- else -->
<otherwise>
<fl:unless test=\"has.property.dummybuild\">
<fail message=\"No valid buildtype !,found => \'${buildtype}\'\"/>
</fl:unless>
<echo>.. is DummyBuild</echo>
</otherwise>
</fl:choose>
</project>
用ant -f build.xml -Dbuildtype = prod输出或
ant -f build.xml -Dbuildtype = prod -Ddummybuild =任何
[echo] ..starting ProductionBuild
输出与错字=>蚂蚁-build.xml -Dbuildtype = testt
BUILD FAILED
/home/rosebud/workspace/AntTest/build.xml:21: No valid buildtype !,found => \'testt\'
用ant -f build.xml -Ddummybuild = whatever输出
[echo] .. is DummyBuild
, 我有同样的问题。我以以下方式解决。
有时这可能是兼容性问题。
右键单击build.xml。
转到“运行方式”-> 2 Ant...。选择Classpath选项卡,检查Ant Home版本(有时,eclipse选择默认的Ant版本)。
如果列出的版本不同,则更改Ant Home Classpath
到C:\\ XXXX \\ ant \\ X.X.X。
最后单击用户条目->添加外部JARS ..-->添加
ant-contrib.x.x.jar的形式为C:\\ XXXX \\ ant \\ X.X.X \\ ant-contrib \\目录。
, 在您的Ant Runtime的任务选项卡上,您是否看到\'if \'任务?
, export ANT_HOME=/path/to/ant/apache-ant-1.8.2
在正确设置ANT_HOME之前,我无法使其正常工作。 Java一直在选择安装在盒子上的另一只蚂蚁。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。