初学ant

时间:2021-08-26 20:26:02

项目管理第二步——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,马上就可以执行相应要的东西。