项目管理第二步——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 可以设定包含返回和排除范围 **/*.* 所有目录总所有文件包裹子文件
上面的为随笔记忆:
下面代码:
<?xml version="1.0" encoding="UTF-8"?>
<project default="execute"> <property name="build.dir" location="build"></property>
<!--使用属性定义相应的路径时,一定使用location而不要使用value-->
<property name="build.classes" location="${build.dir}\classes"></property>
<property name="build.src" location="${build.dir}/src"></property>
<property name="build.lib.dir" location="${build.dir}/dist"></property>
<!--<property name="execute.class" value="ant.zttc.edu.cn.HelloWorld"/>
<property name="jar.name" value="hello.jar"></property>
--> <!--如果属性太多,可以将属性放置到一个外部文件中定义,之后进行引用
特别注意:如果是路径不建议在外部文件中定义,因为此时就不会设置location的值-->
<property file="build.properties"></property> <!--把环境变量中的参数到处到env这个变量中-->
<property environment="env"></property> <target name="test">
<echo>${ant.home}</echo>
<echo>${ant.version}</echo>
<echo>${env.CATALINA_HOME}</echo>
<echo>${env.OS}</echo>
</target> <!--fileset可以设定一组文件集来进行操作,dir指明文件集要进行选择的路径,
通过id可以指定这个文件的名称,在使用的时候进行直接的引入
include和exclude可以设定包含返回和排除范围**/*.*所有目录中的所有文件
-->
<fileset id="src.path" dir="src">
<include name="**/*.*"/>
<!--<exclude name="**/*.java"/>-->
</fileset> <target name="init">
<delete dir="${build.dir}"></delete>
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.src}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib.dir}"/>
</target> <target name="copySrc" depends="init">
<copy todir="${build.src}">
<fileset refid="src.path"></fileset>
</copy>
</target> <target name="compile" depends="init">
<javac destdir="${build.classes}" srcdir="src"></javac>
</target> <target name="jar" depends="compile">
<jar destfile="${build.lib.dir}/${jar.name}" basedir="${build.classes}">
<manifest>
<attribute name="Main-Class" value="${execute.class}"/>
<attribute name="Build-By" value="Konghao"/>
</manifest>
</jar>
</target> <target name="execute" depends="jar,copySrc"> <echo>基于类路径的classname来完成执行</echo>
<java classname="${execute.class}" classpath="${build.classes}">
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java> <echo>基于jar文件执行</echo>
<java jar="${build.lib.dir}/${jar.name}" fork="true">
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java>
</target>
</project>
总结:
(1)首先是SVN将数据check out 下来,
(2)然后在自己电脑上执行以下ant,依靠build.xml,马上就可以执行相应要的东西。