项目中应用ant
来源:互联网 发布:网络协同 系统架构 编辑:程序博客网 时间:2024/04/30 02:56
项目中使用java+corba+c++,编译步骤繁多,首先要将idl文件编译成为java类,然后将java编译为class,再使用项目中的工具将idl编译成的java类,同步为bo文件和相应的boBean,才能使用。中间还牵扯到要将编译的文件copy来copy去。一直想摆脱jBuilder的束缚,无奈一直依赖于jBuilder编译idl文件。新项目仍然要使用同样的框架,趁着有空,引入了ant。
中间遇到了点困难,卡住了很久。jbuilder编译idl时,可以一次编译很多idl文件。安道理jBuilder应该也是调用idl2java才对,我想当然的在调用idl时使用*.idl时,总是会出错,而且经常看到编译出的idl文件出现丢字符的情况。因为在jBuilder中也出现过同样的问题,换了VisiBroker自带的jdk,才能通过。所有我一直以为是jdk的问题,来回换了N多版本的jdk 仍然解决不到。直到后来,才发现使用idl2java,idl文件的先后顺序非常有关系,被依赖的一定要放在前面。idl2java才能成功。
扫除了idl2jav这只拦路虎,发现调用vbjc编译idl2java生成的java也有问题,因为项目层次的关系,无法一次编译java文件。不过我猜测vbjc同样应该是调用javac才对,只是classpath加入了VisiBroker的jar而已。找到VisiBroker下bin目录,查看vbjc.config,就知道具体使用了哪些jar包。一试果然成功。
后面的事情就进展顺利多了。
下面是编写好的build.xml。
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- ******************************************************** --> <property name="app.name" value="openbusi" /> <property name="package" value="com.ai.openbusi.stub" /> <path id="autogen.classpath"> <path id="build.classpath"> <target name="corbaJar" depends="corbaJavac"> <target name="autoGen" depends="corbaJar"> <target name="clean" depends=""> <target name="copy" description=""> <target name="build" depends="copy"> <target name="war" depends="build"> </project>
<project name="appframe3" default="build" basedir="">
<!-- * Copyright 2004 AIC CO.,LD. All rights reserved. * -->
<!-- * Author: asiainfo shanghai fanhuan * -->
<!-- * * -->
<!-- ******************************************************** -->
<!-- * Targets: * -->
<!-- * idl2java Generate idl file to java file * -->
<!-- * corbaJavc Compile java file * -->
<!-- * corbaJar Add class into jar * -->
<!-- * autoGen Generate bo file * -->
<!-- * * -->
<!-- * copy Copy config file to application dir * -->
<!-- * build Build application * -->
<!-- * war Web Application Archive * -->
<!-- * * -->
<!-- ******************************************************** -->
<property name="src.dir" value="src" />
<property name="config.dir" value="config" />
<property name="bosrc.dir" value="idlsrc" />
<property name="bin.dir" value="bin" />
<property name="lib.dir" value="lib" />
<property name="idl.dir" value="../../../aicbs21/idl" />
<property name="webroot.dir" value="webroot" />
<property name="WEB-INF.dir" value="${webroot.dir}/WEB-INF" />
<property name="classes.dir" value="${WEB-INF.dir}/classes" />
<property name="idlSrc.dir" value="${bin.dir}/corbaclient" />
<property name="idlClasses.dir" value="${bin.dir}/classes" />
<property name="autoGen.dir" value="${bin.dir}/autogen" />
<property name="package.dir" value="//com//ai//openbusi//stub//" />
<path id="corba.classpath">
<pathelement location="${lib.dir}/corba/asrt.jar" />
<pathelement location="${lib.dir}/corba/jdsserver.jar" />
<pathelement location="${lib.dir}/corba/obd_vb.jar" />
<pathelement location="${lib.dir}/corba/vbejb.jar" />
<pathelement location="${lib.dir}/corba/vbjorb.jar" />
<pathelement location="${lib.dir}/corba/vbsec.jar" />
<pathelement location="${lib.dir}/corba/xmlrt.jar" />
</path>
<pathelement location="${lib.dir}/idl2java.jar" />
<pathelement location="${autoGen.dir}/idltobo.jar" />
</path>
<pathelement location="${lib.dir}/AIResourceLib.jar" />
<pathelement location="${lib.dir}/appframe3_20051029.jar" />
<pathelement location="${lib.dir}/borlandxml.jar" />
<pathelement location="${lib.dir}/bsh-1.3.0.jar" />
<pathelement location="${lib.dir}/commons-beanutils.jar" />
<pathelement location="${lib.dir}/commons-collections-3.0.jar" />
<pathelement location="${lib.dir}/commons-configuration-1.0-dev.jar" />
<pathelement location="${lib.dir}/commons-lang-2.0.jar" />
<pathelement location="${lib.dir}/commons-logging.jar" />
<pathelement location="${lib.dir}/concurrent.jar" />
<pathelement location="${lib.dir}/ecs-1.4.2.jar" />
<pathelement location="${lib.dir}/idl2java.jar" />
<pathelement location="${lib.dir}/jasperreports-0.5.2.jar" />
<pathelement location="${lib.dir}/jbcl.jar" />
<pathelement location="${lib.dir}/jdom.jar" />
<pathelement location="${lib.dir}/jndi-1.2.1.jar" />
<pathelement location="${lib.dir}/lm.jar" />
<pathelement location="${lib.dir}/log4j-1.2.8.jar" />
<pathelement location="${lib.dir}/obd.jar" />
<pathelement location="${lib.dir}/ojdbc14.jar" />
<pathelement location="${lib.dir}/poi-2.5.1-final-20040804.jar" />
<pathelement location="${lib.dir}/rowset.jar" />
<pathelement location="${lib.dir}/servlet.jar" />
<pathelement location="${lib.dir}/smart.jar" />
<pathelement location="${lib.dir}/uitheme-1.4.jar" />
<pathelement location="${lib.dir}/vbjorb.jar" />
<pathelement location="${lib.dir}/vbsec.jar" />
<pathelement location="${lib.dir}/velocity-1.4-rc1.jar" />
<pathelement location="${lib.dir}/xerces.jar" />
<pathelement location="${lib.dir}/pool.jar" />
<pathelement location="${lib.dir}/commons-fileupload-1.0.jar" />
</path>
<target name="idl2java">
<property name="arg" value=" -package ${package} -root_dir ${idlSrc.dir}
-comments -bind -no_examples -no_tie " />
<!-- start add idl file -->
<exec dir="" executable="idl2java.exe" os="Windows XP">
<arg line="${arg} ${idl.dir}/cbscommon_def.idl
${idl.dir}/sysclass_def.idl
${idl.dir}/privmgnt_def.idl
${idl.dir}/privmgnt.idl
${idl.dir}/publicframe_mgr.idl
${idl.dir}/privext.idl
${idl.dir}/privmgnt_other.idl
${idl.dir}/sysclass_other.idl
${idl.dir}/busiaccept_def.idl
${idl.dir}/busiaccept_def2.idl
${idl.dir}/busiaccept_other.idl
${idl.dir}/busiaccept.idl
${idl.dir}/busicommon.idl
${idl.dir}/busichange.idl
${idl.dir}/busicreate.idl
${idl.dir}/busiseek.idl
" />
</exec>
<!-- end add idl file -->
</target>
<target name="corbaJavac" depends="idl2java">
<mkdir dir="${idlClasses.dir}"/>
<javac srcdir="${idlSrc.dir}" destdir="${idlClasses.dir}">
<classpath refid="corba.classpath" />
</javac>
</target>
<jar destfile="${lib.dir}/idl2java.jar" basedir="${idlClasses.dir}" excludes="readme.txt" />
</target>
<copydir src="${bosrc.dir}" dest="${idlSrc.dir}" includes="**/*.java" excludes="readme.txt"/>
<java classname="com.ai.autogen.AutoGen">
<arg value="${idlSrc.dir}${package.dir}" />
<arg value="${config.dir}${package.dir}" />
<arg value="${package}" />
<classpath refid="autogen.classpath" />
</java>
<copydir src="${config.dir}${package.dir}" dest="${src.dir}${package.dir}" includes="**/*.java" />
</target>
<delete includeemptydirs="true">
<fileset dir="${src.dir}${package.dir}" includes="**/*.java"/>
<fileset dir="${idlSrc.dir}" includes="**/*.java"/>
<fileset dir="${idlClasses.dir}" includes="**/*.class"/>
<fileset dir="${config.dir}" includes="**/*.bo"/>
<fileset dir="${config.dir}" includes="**/*.java"/>
<fileset dir="${classes.dir}" includes="**/*.class"/>
<fileset dir="${classes.dir}" includes="**/*.bo"/>
</delete>
<delete file="${lib.dir}/idl2java.jar"/>
</target>
<copydir src="${config.dir}" dest="${classes.dir}" excludes="**/*.java"/>
<copydir src="${lib.dir}" dest="${WEB-INF.dir}/lib" includes="**/*.jar"/>
</target>
<javac srcdir="${src.dir}" destdir="${classes.dir}">
<classpath refid="build.classpath" />
</javac>
</target>
<delete includeEmptyDirs="true" dir="${app.name}.war" />
<war destfile="${app.name}.war" webxml="${WEB-INF.dir}/web.xml" compress="false">
<fileset dir="${webroot.dir}" />
</war>
</target>
- 项目中应用ant
- Ant之项目应用
- eclipse中构建ant项目和编译运行ant
- Java中RMI应用(Ant build)
- Android项目中Ant打包脚本编写
- Intellij Idea中如何打开Ant项目
- Ant在eclipse中搭建项目
- ANT应用----ANT实战
- ANT应用----ANT实战
- 9.3 Eclipse中使用Ant(转自:《项目实践精解:基于Struts-Spring-Hibernate的Java应用开发》)
- Ant应用
- Ant应用
- Ant应用
- ant 应用
- ANT应用
- OA—Ant构建工具和基于Ant的XDoclet开源项目的应用
- 项目中应用Echarts
- 【ant】ANT打包Android应用
- 前段时间第一次闯入某学院的网站
- Hibernate:HQL/QBC查询语言比较的用法(2)
- 字符串中的正则表达式特殊符号
- 闲话UI: 最小化
- [翻译] Effective C++, 3rd Edition, Item 44: 从 templates(模板)中分离出 parameter-independent(参数无关)的代码(下)
- 项目中应用ant
- 老蒋的事迹
- 封装变化以实现去耦合
- 深入剖析JSP和Servlet对中文的处理
- 高效的TreeView构建方法
- 1111
- 3d 贪食蛇
- 今天我偷看了我家存折……(主要看精彩回复)
- QuickSort实现