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