提及Ant打包和发布ear。在本文中给出Ant打包和 发布ear 的详细 文件。 文件内容应该不难理解。 [本文给出的是 jboss 部署]。这和我的另一篇文章《 apache2.2 tomcat5.5 jboss4.2搭建 web集群+应用集群》是相对应的。 说明:target prepare: 创建classes文件夹 compile: 编绎 copycf: 拷贝配置文件[这里是拷贝一些配置文件,比如spring 的配置文件、log4j配置文件、二级缓存配置文件、bean的映射文件,因为 compile: 编绎 时只编译 java 文件,其他文件是不管的。] ejbjar: 创建ejb jar包[注意配置 manifest Class-Path ] webwar: 创建WEB发布包[注意配置 manifest Class-Path ] ear: 创建EAR发布包[注意添加 第三方jar包] <project name="ear" default="deploy" basedir=".."> <property environment="env" /> <property name="app.dir" value="${basedir}" /> <property name="src.dir" value="${app.dir}/JavaSource" /> <property name="build.dir" value="${app.dir}/build" /> <property name="classes.dir" value="${app.dir}/build/classes" /> <property name="webcontent.dir" value="${app.dir}/WebContent" /> <property name="jboss.home" value="${env.JBOSS_HOME}" /> <property name="jboss.server.config" value="default" /> <path id="build.classpath" description="编译时classpath"> <fileset dir="${webcontent.dir}/WEB-INF/lib"> <include name="*.jar" /> </fileset> <pathelement location="${classes.dir}" /> </path> <target name="prepare" depends="clean" description="创建classes文件夹"> <mkdir dir="${classes.dir}" /> </target> <target name="compile" depends="prepare" description="编绎"> <javac srcdir="${src.dir}" destdir="${classes.dir}" debug="on" deprecation="on" optimize="off" includes="**"> <classpath refid="build.classpath" /> </javac> </target> <target name="copycf" depends="compile" description="拷贝配置文件"> <copy todir="${classes.dir}" > <fileset dir="${src.dir}"> <include name="*.xml" /> <include name="*.properties" /> <exclude name="*.log" /> </fileset> </copy> <copy todir="${classes.dir}/sezelee/cc/bean" > <fileset dir="${src.dir}/sezelee/cc/bean"> <include name="*.xml" /> <include name="*.properties" /> <exclude name="*.log" /> </fileset> </copy> </target> <target name="sessionInterface" depends="copycf" description="创建session bean接口包"> <jar destfile="${app.dir}/interface.jar"> <fileset dir="${classes.dir}"> <include name="sezelee/cc/service/*.class" /> </fileset> </jar> </target> <target name="ejbjar" depends="sessionInterface" description="创建ejb jar包"> <jar destfile="${app.dir}/ejb.jar"> <fileset dir="${classes.dir}"> <include name="**" /> </fileset> <manifest> <attribute name="Class-Path" value="mysql-connector-java-3.1.13-bin.jar commons-lang-2.3.jar jotm-core.jar jotm-client.jar ow2-connector-1.5-spec.jar xapool.jar spring.jar oscache-2.1.jar ehcache-1.2.3.jar"/> </manifest> </jar> </target> <target name="webwar" depends="ejbjar" description="创建WEB发布包"> <war destfile="${app.dir}/web.war" webxml="${webcontent.dir}/WEB-INF/web.xml"> <fileset dir="${webcontent.dir}"> <include name="*.jsp"/> <exclude name="WEB-INF/web.xml"/> <exclude name="WEB-INF/lib/**"/> </fileset> <manifest> <attribute name="Class-Path" value="mysql-connector-java-3.1.13-bin.jar commons-lang-2.3.jar jotm-core.jar jotm-client.jar ow2-connector-1.5-spec.jar xapool.jar spring.jar oscache-2.1.jar ehcache-1.2.3.jar"/> </manifest> </war> </target> <target name="ear" depends="webwar" description="创建EAR发布包"> <ear destfile="${app.dir}/ejbbbsseserver.ear" appxml="${build.dir}/META-INF/application.xml"> <fileset dir="${app.dir}"> <include name="ejb.jar"/> <include name="web.war"/> </fileset> <fileset dir="${webcontent.dir}/WEB-INF/lib" > <include name="mysql-connector-java-3.1.13-bin.jar" /> <include name="commons-lang-2.3.jar" /> <include name="jotm-core.jar" /> <include name="jotm-client.jar" /> <include name="ow2-connector-1.5-spec.jar" /> <include name="xapool.jar" /> <include name="spring.jar" /> <include name="oscache-2.1.jar" /> <include name="ehcache-1.2.3.jar" /> </fileset> </ear> </target> <target name="deploy" depends="ear"> <copy file="${app.dir}/ejbbbsseserver.ear" todir="${jboss.home}/server/${jboss.server.config}/deploy" /> </target> <target name="clean"> <delete> <fileset dir="${app.dir}"> <include name="ejb.jar"/> <include name="web.war"/> <include name="interface.jar"/> </fileset> </delete> <delete dir="${classes.dir}" /> <!-- --> <delete file="${jboss.home}/server/${jboss.server.config}/deploy/ejbbbsseserver.ear" /> </target></project>