这次有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>