我是ANT世界的新手。我的应用程序基于客户端 - 服务器架构,它使用“RMI”进行通信。
我需要编写一个ANT构建脚本,它自动编译整个代码,启动服务器并运行连接到该服务器的两个客户端。
这是我当前build.xml
文件的结构。(我不确定是什么问题)
<?xml version="1.0" encoding="UTF-8"?>
<project default="runClientOne" name="MyFirstAntProject">
<target name="compile">
<javac srcdir="./src" destdir="classfiles" />
</target>
<target name="runServer" depends="compile" >
<java classname="com.jain.RMIServer">
<classpath path="classfiles" />
</java>
</target>
<target name="runClientOne" depends="runServer">
<java classname="com.jain.RMIClient" fork="true" taskname="A" >
<classpath path="classfiles" />
<arg value="localhost"/>
<arg value="Sumit"/>
</java>
<java classname="com.jain.RMIClient" fork="true" taskname="B">
<classpath path="classfiles" />
<arg value="localhost"/>
<arg value="Sushil"/>
</java>
</target>
</project>
答案 0 :(得分:3)
谢谢大家,
我已经发现我必须使用<parallel>My CODE </parallel>
。
答案 1 :(得分:0)
当我试图完成类似的事情时,我偶然发现了这个问题,这就是我如何实现开始运行服务器和客户端的目标。 (我的答案扩展了Sushil和SO answer)
情况就是这样:我有一台服务器,当我启动时,我希望3个客户端立即连接到服务器,所有这些都在一个单独的过程中。
诀窍是将parallel
和sequential
嵌套在build.xml
目标中。
可以将睡眠呼叫更改为等待该过程。
<target name="start-all" depends="build"
description="Starts 1 Server and 2 clients ">
<parallel>
<sequential>
<java classname="Server" fork="true">
<classpath refid="master-classpath"/>
<arg line="${port}"/>
</java>
</sequential>
<sequential>
<sleep milliseconds="500"/>
<antcall target="start-client">
<param name="server.address" value="localhost" />
<param name="server.port" value="${port}"/>
</antcall>
</sequential>
</parallel>
</target>
这将启动服务器,然后启动客户端,或者使用<daemon>
启动服务器,然后立即启动客户端。