提及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>