Lim*_*ent 1 java ant ant-contrib
我使用以下演示脚本:
<?xml version="1.0" encoding="UTF-8"?>
<project name="test" basedir="." xmlns:deploy="antlib:net.sf.antcontrib">
<target name="default">
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="lib/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<deploy:if>
<isset property="defaultprop"/>
<then>
<echo message="it's set!"/>
</then>
</deploy:if>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
当我运行这个构建脚本(带目标default
)时,错误是
build.xml:9: Problem: failed to create task or type antlib:net.sf.antcontrib:if
Run Code Online (Sandbox Code Playgroud)
这个问题lib/ant-contrib-1.0b3.jar
存在,蚂蚁正在捡起它.我在想问题是我如何使用xmlns.我从另一个我不具备的例子中得到这个(虽然它可以在特定的服务器上运行!),并试图找出魔法酱是什么.
你在taskdef中添加ant-contrib需要声明一个URI,与你在项目中定义的名称空间和前缀相同.类似于taskdef 在这里工作的方式.
<project name="test" basedir="." xmlns:deploy="antlib:net.sf.antcontrib">
<target name="default">
<taskdef uri="antlib:net.sf.antcontrib" resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="lib/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<deploy:if>
<isset property="defaultprop"/>
<then>
<echo message="it's set!"/>
</then>
</deploy:if>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)