初学ant
项目管理第二步——ant 自动化完成项目的构建
Ant1.7.chm
Ant权威指南
Ant入门
Ant使用指南
Ant安装文件压缩包
dir 查看所有目录
mkdir 创建目录
创建一个文件夹teach/ant/ant01
1.新建build.xml,
编写内容:
<project>
<target> ---每一个任务
*********
</target>
</poject>
2.新建HelloWorld.java程序
3.测试ant,看结果
总结:
(1)Ant的中根目录是project,所有项目都在旗下,
在project中的属性 default是指定执行默认的任务
(2)执行的每一项具体的是通过target来完成,当不同的任务之间有相应关联的时候,
可以通过depends属性来依赖。
4.ant编译普通Java项目的流程。
(1)创建文件夹
build——>所有的文件信息都保存在这个文件夹中
src———》所有的源码信息保存在这个文件夹中
classes——》编译好的所有class文件保存在这个文件夹中
dist——》编译好的jar文件保存在这个文件夹中
(2) 将src文件夹的数据拷贝都build/src文件夹中
(3)编译源代码
(4)将源代码打包成jar包
(5)直接运行程序
5.在eclipse中新建一个Java项目ant01
新建一个HelloWorld程序
配置eclipse中的Ant, 文档路径设置成自己文档的路径,要不然会去网上抓取,比较慢
另外配置Ant的HOME,配置成自己的Ant的目录,默认是JDK的目录
(2)在更目录创建一个build.xml文件,右键other的选择ant打开。ant编辑器
(3)开始输入build.xml内容。
接下来首先,创建文件夹。
标签为<mkdir> 删除的标签为<delete>
如何获取文件夹下的所有文件,在ant中是通过文件集来实现的,即简历一个文件文件集合
<fileset dir="" includes="" ></fileset>
dir指明路径,includes包含什么样的文件包含进来。如:"**/*.java" "**/*.*"
fileset 都有一个id 来表明id
后面的fileset就可以直接使用refid=引用这个id
一般要先开始删除,因为ant如果检查到有了剧不会执行了。
文件集合还可以如下使用:
<fileset id="" dir="src">
<include name="**/*.*">
<exclude name="**/*.java"> 排除java的文件
</fileset>
fileset可以设定一组文件集来操作,dir指明文件集要进行选择的路径
通过id可以指定这个文件的名称,在使用的时候可以直接引入。
include和exclude 可以设定包含返回和排除范围 **/*.* 所有目录总所有文件包裹子文件
上面的为随笔记忆:
下面代码:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project default="execute"> 3 4 <property name="build.dir" location="build"></property> 5 <!--使用属性定义相应的路径时,一定使用location而不要使用value--> 6 <property name="build.classes" location="${build.dir}\classes"></property> 7 <property name="build.src" location="${build.dir}/src"></property> 8 <property name="build.lib.dir" location="${build.dir}/dist"></property> 9 <!--<property name="execute.class" value="ant.zttc.edu.cn.HelloWorld"/> 10 <property name="jar.name" value="hello.jar"></property> 11 --> 12 13 <!--如果属性太多,可以将属性放置到一个外部文件中定义,之后进行引用 14 特别注意:如果是路径不建议在外部文件中定义,因为此时就不会设置location的值--> 15 <property file="build.properties"></property> 16 17 <!--把环境变量中的参数到处到env这个变量中--> 18 <property environment="env"></property> 19 20 <target name="test"> 21 <echo>${ant.home}</echo> 22 <echo>${ant.version}</echo> 23 <echo>${env.CATALINA_HOME}</echo> 24 <echo>${env.OS}</echo> 25 </target> 26 27 <!--fileset可以设定一组文件集来进行操作,dir指明文件集要进行选择的路径, 28 通过id可以指定这个文件的名称,在使用的时候进行直接的引入 29 include和exclude可以设定包含返回和排除范围**/*.*所有目录中的所有文件 30 --> 31 <fileset id="src.path" dir="src"> 32 <include name="**/*.*"/> 33 <!--<exclude name="**/*.java"/>--> 34 </fileset> 35 36 <target name="init"> 37 <delete dir="${build.dir}"></delete> 38 <mkdir dir="${build.dir}"/> 39 <mkdir dir="${build.src}"/> 40 <mkdir dir="${build.classes}"/> 41 <mkdir dir="${build.lib.dir}"/> 42 </target> 43 44 <target name="copySrc" depends="init"> 45 <copy todir="${build.src}"> 46 <fileset refid="src.path"></fileset> 47 </copy> 48 </target> 49 50 <target name="compile" depends="init"> 51 <javac destdir="${build.classes}" srcdir="src"></javac> 52 </target> 53 54 <target name="jar" depends="compile"> 55 <jar destfile="${build.lib.dir}/${jar.name}" basedir="${build.classes}"> 56 <manifest> 57 <attribute name="Main-Class" value="${execute.class}"/> 58 <attribute name="Build-By" value="Konghao"/> 59 </manifest> 60 </jar> 61 </target> 62 63 <target name="execute" depends="jar,copySrc"> 64 65 <echo>基于类路径的classname来完成执行</echo> 66 <java classname="${execute.class}" classpath="${build.classes}"> 67 <arg value="张三"/> 68 <arg value="李四"/> 69 <arg value="王五"/> 70 </java> 71 72 <echo>基于jar文件执行</echo> 73 <java jar="${build.lib.dir}/${jar.name}" fork="true"> 74 <arg value="张三"/> 75 <arg value="李四"/> 76 <arg value="王五"/> 77 </java> 78 </target> 79 </project>
总结:
(1)首先是SVN将数据check out 下来,
(2)然后在自己电脑上执行以下ant,依靠build.xml,马上就可以执行相应要的东西。