Server端测试脚本 <?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="run_server" name="ant_server"> <taskdef resource="net/sf/antcontrib/antcontrib.properties"/> <target name="run_server"> <antserver port="12338"/> <echo message="ycg--- >>> server running ..."/> </target> <target name="task.remote"> <echo message="ycg--- >>> build.type = ${build.type}"/> <echo message="ycg--- >>> build.time(in client) = ${build.time}"/> </target> <target name="task.remote2"> <property name="build.type" value="full" /> <echo message="ycg--- >>> build.type = ${build.type}"/> </target> </project> Client端测试脚本 <?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="build_remote" name="ant_hello"> <taskdef resource="net/sf/antcontrib/antcontrib.properties"/> <tstamp> <format property="vl.cur_datetime" pattern="yyyy-MM-dd HH:mm"/> <format property="vl.cur_datetime_forfile" pattern="yyyy-MM-dd(HHmm)"/> </tstamp> <!-- test remote 1 --> <target name="build_remote"> <remoteant machine="localhost" port="12338"> <runtarget target="task.remote"> <property name="build.type" value="full" /> <property name="build.time" value="${vl.cur_datetime}" /> </runtarget> </remoteant> </target> <!-- test remote 2 --> <target name="build_remote2"> <remoteant machine="localhost" port="12338"> <runtarget target="task.remote2"> <property name="build.type" value="full" /> </runtarget> </remoteant> </target> <!-- 本地测试 --> <target name="build"> <antcall target="task.local"> <param name="build.type" value="full" /> <param name="build.time" value="${vl.cur_datetime}" /> </antcall> </target> <target name="task.local"> <echo message="ycg--- >>> build.type = ${build.type}"/> <echo message="ycg--- >>> build.time(in client) = ${build.time}"/> </target> </project> 出现异常: Buildfile: D:\MyProject\ResearchTest\Ant\ant.remote\client\build.xml build_remote: BUILD FAILED D:\MyProject\ResearchTest\Ant\ant.remote\client\build.xml:12: java.io.EOFExcepti on at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputSt ream.java:2554) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at net.sf.antcontrib.antserver.client.Client.sendCommand(Client.java:233 ) at net.sf.antcontrib.antserver.client.ClientTask.execute(ClientTask.java :144) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:392) at org.apache.tools.ant.Target.performTasks(Target.java:413) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) at org.apache.tools.ant.Project.executeTarget(Project.java:1368) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe cutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1251) at org.apache.tools.ant.Main.runBuild(Main.java:811) at org.apache.tools.ant.Main.startAnt(Main.java:217) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) Total time: 0 seconds 解决方法: 下载Xerces-J-bin.2.11.0.zip,将其中两个文件复制到 ant/lib 目录下即可 xercesImpl.jar xml-apis.jar