2、ant是一个快速编译、打包、部署的工具
3、ant实际就是通过build.xml文件的编写,来有步骤的做事
4、介绍一下标记的用处:
4.1、定义变理
<property name=”webapps” location=”webapps” />
说明:name表示变量的名称,location表示变量的值。
变量的使用方法如下:
<mkdir dir=”${webapps}” />
4.2、创建目录和删队目录
<mkdir dir=”${webapps}” />
<delete dir=”${webapps}” />
说明:dir表示要建立或者删除的目录名。也可以一次定义多级目录。例如:${webapps}/WEB-INF/classes
注意:删除目录的时候,其子目录和目录内的文件都将一并被删除。
4.3、编译文件,不需要用到其它包时
<javac srcdir=”${srcdir}” destdir=”${destdir}” >
</javac>
srcdir是编译的源文件的目录,desdir是编译好的目录路径,另外还可以加debug,encoding,classpath属性。
debug表明编译时将debug信息编译到class文件中。
encoding表明以何中编码方式来编译你的源文件。
classpath如果在编译时要用到jar包或者其他class文件所在的路径,可写在这里
<javac srcdir=”${srcdir}” destdir=”${destdir}” classpath=”${lib}/aaa.jar”>
</javac>
4.4、编译文件,要用到其它的包或class文件时
<path id=”classpath”>
<fileset dir=”${lib.dir}”>
<include name=”**/*.jar”/> //**/*.jar表示该目录急其字目录的所有,*.jar该目录下
</fileset>
</path>
<javac destdir="${dist.classes}" deprecation="on">
<src path="${src.code}"/>
<classpath refid="classpath"/>
</javac>
4.5、打jar包操作
就是装class文件打包成一个jar文件
<jar destfile="${dist}/app.jar" basedir="${dist.dir}"/>
destfile表示打包后一成的目标文件的名称。
basedir表示class文件所在的路径,该目录下的所有文件都将被子打包到jar文件中。
复杂一点的打包情况:
<jar destfile="${dist}/test.jar">
<fileset dir="${build}/classes" excludes="**/Test.class" />
<fileset dir="${src}/resources"/>
</jar>
4.6、复制文件操作
复制文件操作就是将一系列的文件从一个目录下拷贝到另一个目录下。其基本的用法如下:
<copy todir="${dist.dir}" overwrite="true" flatten="true">
<fileset dir="${lib.dir}">
<include name="*.jar" />
<exclude name="j2ee.jar" />
</fileset>
</copy>
todir表示目标目录。overwrite表示是否覆盖。flattern表示是否丢弃源文件的目录结构(如果源文件夹中包含多级目录,这些目录也会被建立在目标文件夹中)。
提示:如果不包括include和exclude属性,那么会将源目录下的所有文件和文件夹拷贝到目标目录中。
4.7、可以分成几段来写,写完了找个总的来一个个调用
<target name="all"
depends="usage,init,prepare-src,build,javadoc"
description="make all task." />
name对应project default=all
depends里面是写是target的name,安顺序执行
4.8、下面这样写可以在文件里加中文注释
<?xml version="1.0" encoding="GB2312" ?>
encoding="GB2312" 这种编译方法可加中文
wsdl2java -uri <wsdl地址>wsdl生成java
<target name="generate.wsdl" depends="compile.service">
<taskdef name="java2wsdl"
classname="org.apache.ws.java2wsdl.Java2WSDLTask"
classpathref="axis2.classpath"/>
<java2wsdl className="demo.HelloWorld"
outputLocation="${build.dir}"
targetNamespace="http://ws2.demo/"
schemaTargetNamespace="http://ws2.demo/xsd">
<classpath>
<pathelement path="${axis2.classpath}"/>
<pathelement location="${build.dir}/classes"/>
</classpath>
</java2wsdl>
</target>
taskdef是定义一个任务,但是这个任务不是ant内置的,是由classname这个类来实现的
也就是说org.apache.ws.java2wsdl.Java2WSDLTask这个类实现了java2wsdl这个任务,这个类的作用是将由java代码生成wsdl
运行方式:
ant -buildfile build2.xml
-buildfile是指定一个配置文件,默认的是build.xml则不需这个参数