使用Ant打包是比较方便的,我们可以在项目根目录下建立一个名为build.xml的xml文件,然后再xml文件里面定义我们的打包任务,如下:
上面建立了一个名为HelloWorld的Ant项目,default=”ejbjar”指定运行Ant时,如果没有给定任务名称,则默认执行ejbjar任务。Basedir=”.”指定项目的路径为build.xml文件所在的目录。
<property environment=”env” />用于引用操作系统的环境变量。
<property name=”jboss.home” value=”${env.JBOSS_HOME} />定义了一个名为jboss.home的属性,它的值引用名为JBOSS_HOME的环境变量(环境变量JBOSS_HOME是在安装jboss时设置的jboss主目录)。
<property name=”build.dir” value=”${basedir}/build” />定义一个名为build.dir的属性,它的值指向项目路径下build/classes目录,该目录用于存放编译后的class文件。
<path id=”build.classpath”>节点定义了一个id为build.classpath的类路径,类路径包含[jboss安装目录]/client下的所有jar文件及/buile/classes下的所有类文件。
<target name=”prepare” depends=”clean”>节点用于在项目路径下创建build和/build/classes文件夹。该任务依赖clean任务,执行prepare任务前会先执行clean任务。
<target name=”compile” depends=”prepare” description=”编译”>节点定义了一个编译任务,该任务调用javac对src目录下的源文件进行编译。classpath引用id为build.classpath的类路径。编译后的class文件存放在/build/classes目录,在任务执行前会先执行prepare任务。
<target name=”ejbjar” depends=”compile” description=”创建EJB发布包”>节点定义了一个打包任务,该任务调用jar命令对/build/classes目录下的所有class文件进行打包,并且把src/META-INF目录下的所有xml文件打进jar文件的META-INF目录。生成后的jar文件存放在项目的根目录下,名为HelloWorld.jar。在任务执行前会先执行compile任务。
上面主要是针对java工程打成jar包,下面简单讲一下对于web工程打成war包的过程
发布一个web应用到jboss前,需要把它打成war文件,首先必须了解一个web应用应该具有哪些目录及文件,其中WEB-INF目录和web.xml文件是必须提供的,其它的目录和文件可以不存在。当你打成war文件后应检查war文件,如果根目录下没有WEB-INF或WEB-INF下没有web.xml文件,那么在发布web应用时将会失败。