<?xml version="1.0" encoding="UTF-8"?>
<project name="你好世界" basedir=".">
<!-- 设置项目的名称 可以自定义,
后面的代表项目所在目录
这个点代表项目就在此文件的目录下
如果二个点, 代表在build.xml文件的上级目录
-->
<!--
用于定义一个属性变量 name【项目的源文件所在的目录,
以后我们通过此变量知道项目源文件所在的目录】
value【里边引用的是上面的,和EL表达式写法有点像,
在项目的src目录下】
-->
<property name="src.dir" value="${basedir}/src"/>
<!--
也是一个属性指向到操作系统里的系统变量,?因为我们要从系统
环境变量里得到变量值
-->
<property environment="env"/>
<!--
这里引用的是上面的那个变量 value的jboss的安装路经
通过name来知道
-->
<property name="jboss.home" value="${env.JBOSS_HOME}"/>
<!-- 它用于指定目前jboss的配置项 -->
<property name="jboss.server.config" value="default"/>
<property name="build.dir" value="${basedir}/build"/>
<!--
它的值指向项目路经低下的build文件,这个用于我们后面编译下的class类
存放的位置
-->
<!-- 上面为什么要定义那些属性呢?主要是为了后面应用,,这就和java里定义的变量差不多 -->
<!--
配置一个类路经 这个id就是一个名称
在我们开发ejb应用的时候,需要依赖一些jar文件的
那么这些jar文件在安装目录下的client目录下
另外我们目录的文件之间它也有一个使用关系
所以我们把编译后的class文件放到类路经下
这里我们通过pathelement来指定此路经下
注意这里要把jboss的路经配置在环境变量里了
-->
<path id="build.classpath">
<fileset dir="${jboss.home}/client">
<include name="*.jar"/>
</fileset>
<pathelement location="${build.dir}"/>
</path>
<!--
这个配置定义了一个工作 这个工作的名称就是那个name属性值,可以随便设
mkdir是创建class文件存放的目录 此目录在我们的项目里边是不存在的,所以我们有必须它创建出来
以后我们编译出来的文件在此目录下
-->
<target name="prepare">
<delete dir="${build.dir}"/>
<mkdir dir="${build.dir}"/>
</target>
<!--
这个是为了完成编译工作
这个工作里我们调用了javac命令
源文件【我们通过前面的src.dir来调用 编译后的class文件放到】
我们在编译的时候全用到一些jar文件
这里我们调用了javac命令 存放编译后的文件必须在调用javac命令前就创建的
所以我们要先执行上面的那个target,然后再执行此配置 所以配置了一个depends属性
-->
<target name="compile" depends="prepare" description="编译">
<javac srcdir="${src.dir}" destdir="${build.dir}">
<classpath refid="build.classpath"/>
</javac>
</target>
<!--
此配置是我们以前要做的打包工作的过程,这里使用配置来进行打包过程
把此类文件打包,放到项目低下,名称为
此jar文件包含那就些类我们通过学习fileset来定位到class文件所存放的路经下
然后把它低下所有的class文件都是包含进来
-->
<target name="ejbjar" depends="compile" description="创建EJB发布包">
<jar jarfile="${basedir}/${ant.project.name}.jar">
<fileset dir="${build.dir}">
<include name="**/*.class"/>
</fileset>
</jar>
</target>
<target name="deploy" depends="prepare" description="发布EJB">
<copy file="${basedir}/${ant.project.name}.jar" todir="${jboss.home}/server/${jboss.server.config}/deploy"></copy>
</target>
<target name="undeploy" depends="prepare" description="卸载EJB">
<delete file="${jboss.home}/server/${jboss.server.config}/deploy/${ant.project.name}.jar"/>
</target>
</project>