这次有30多个idl文件需要生成java代码,并且其中有些idl之间相互引用,用命令一个个生成感觉非常反锁,并且容易出问题,看到jacorb中的例子是用ant来生成的,与自己也用ant批量生成了,在这里记录下主要的代码内容,供下次参考。
ant的build.xml文件内容如下:
<?xml version="1.0"?> <!-- 批量将idl生成java代码 --> <project name="idlBuilder" default="build" basedir="."> <target name="init"> <property name="name" value="mstp"/> <!-- 其中有idl引用了jacorb中的idl,所以这里指定下jacorb目录,用来引用 --> <property name="dirs.jacorb" value="F:/AppData/CORBA/jacorb-2.3.1"/> <property name="dirs.base" value="${basedir}"/> <property name="lib" value="${dirs.jacorb}/lib"/> <property name="include" value="${dirs.jacorb}/idl"/> <!-- 生成的代码放到generated目录中 --> <property name="idlflags" value="-I${include}/omg -ir -d ${dirs.base}/generated"/> </target> <target name="build" depends="init"> <java classname="org.jacorb.idl.parser" fork="yes" classpath="${lib}/*.jar;${java.class.path}"> <!-- 需要的处理的idl文件都在idl目录中 --> <arg line="${idlflags} ${dirs.base}/idl/*.idl"/> </java> </target> <target name="clean" depends="init"> <delete dir="${dirs.base}/generated"/> </target> </project>