ant入门(二)

存放ant工程所有的文件需要一个目录,我们在E:\Workspaces2下新建一个目录Ant,用来创建本文的ant工程,其他所有的目录都以此目录为基准。在此目录下需要有三个子目录,它们是src、lib和classes。

首先我们新建一个Student类和测试类

package com.intl.entity;  
 
public class Student {  
 
    private int id;  
    private String name;   //姓名  
    private String gender; //性别  
    private String major;  //专业  
    private String grade;  //年级  
      
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public String getGender() {  
        return gender;  
    }  
    public void setGender(String gender) {  
        this.gender = gender;  
    }  
    public String getMajor() {  
        return major;  
    }  
    public void setMajor(String major) {  
        this.major = major;  
    }  
    public String getGrade() {  
        return grade;  
    }  
    public void setGrade(String grade) {  
        this.grade = grade;  
    }  
      
}  
package com.test;  
 
import com.intl.entity.Student;  
public class AntDemo  
{  
 
    public static void main(String[] args)  
    {  
        Student student = new Student();  
        student.setId(1);
		student.setName("xiaoluo");
        student.setMajor("jishuji");
		student.setGender("nan");
        student.setGrade("2007");
        System.out.println(student.getName());  
    }  
      
}


   接下来需要做的,就是创建ant工程的核心所在,编写生成文件。生成文件默认名为build.xml,一般存放在工程的顶级目录中,在本示例中就是在ant下。生成文件包含一个project元素,它是顶级元素,代表一个工程。project元素至少一个target元素,而每个target元素又包含一个到多个task元素。执行ant,就是执行这些target元素;而执行每个target元素,就是依次执行它所包含的task元素。本工程的build.xml文件如下:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!--project元素。name属性指定工程的名称,default属性  
指定ant默认执行的target,即不指定要执行的target时,ant  
执行的target。basedir指定本工程的基准目录,这里指定为  
当前目录。--> 
<project name="Ant" default="compile" basedir=".">     
      
    <!--property元素,定义了两个元素,供后面以${元素名}的形式引用。--> 
    <property name="targetdir" value="classes"/> 
    <property name="srcdir"    value="src"/> 
 
    <!--定义一个path元素,指定id属性,供后面引用--> 
    <path id="library"> 
        <!--定义一个fileset元素,用于指定需要用到的文件。dir属性指定哪个目录下的文件。--> 
        <fileset dir="lib"> 
          <!--指定包含lib目录下的所有jar包--> 
          <include name="*.jar" /> 
        </fileset> 
    </path> 
 
    <!--定义一个target元素,name属性为必须,用于标识此target。description属性用于描述此target,无太大意义。depends属性指定执行此target,所依赖的其他target。这里指定为了运行compile这个target,需首先执行clean,copy-resources这两个target。--> 
    <target name="compile" description="Compiles the Task"  depends="clean"> 
        <!--javac是ant的核心任务(task),用于编译JAVA源程序。srcdir属性指定源程序所在的目录,${srcdir}表明引用上面定义的名为srcdir的property元素的值。destdir指定编译后生成的.class文件的输出目录。同样地,这里使用了${targetdir}的形式引用了上面定义的名为targetdir的property元素的值。classpathref表明引用上面定义的id为library的path元素。在这里,即可把它包含的.jar包加载到classpath中,而不需要像笔者以前那样自己手动运行setclasspath命令。--> 
        <javac srcdir="${srcdir}" destdir="${targetdir}"   
        classpathref="library" includeantruntime="no"/>   
    </target> 
 
    <!--定义一个名为clean的target。--> 
    <target name="clean"> 
        <!--delete是ant的一个核心任务,用于删除目录或文  
        件。这里用来删除classes目录。即先把以前创建的classes目录删除,免得旧文件造成干扰--> 
        <delete dir="${targetdir}" /> 
        <!--mkdir也是一核心任务,用于创建目录。这里用来  
        新创建classes目录--> 
        <mkdir dir="${targetdir}" /> 
    </target> 
      
   <target name="copy-resources"> 
        <!--copy也是ant的一个核心任务,用于复制目录或文  
        件。todir指定复制的目标目录。本示例未使用此任务--> 
        <copy todir="${targetdir}"> 
        <!--fileset元素指定要复制的文件集,dir属性指定复制的源目录,exclude元素指定排除此目录下的所有java源文件,即复制除这些文件之外的所有文件--> 
           <fileset dir="${srcdir}"> 
              <exclude name="**/*.java"/> 
           </fileset> 
        </copy> 
    </target>   
      
    <!--depends属性指定运行此target应先运行名为compile的target--> 
    <target name="run" depends="compile"> 
      <!--java是ant的核心任务,用于执行某个java类。classname属性用于指定要运行的类,这里要用到类的全名fork设为true表明使用另外的JVM来运行我们的JAVA类,而不是使用运行ant的那个JVM。classpathref与上面的javac里的一样-->     
      <java fork="true" classname="com.test.AntDemo" classpathref="library"> 
        <!--将classes目录加载到classpath中--> 
        <classpath path="${targetdir}"/>          
      </java> 
    </target> 
</project> 

到命令行窗口运行ant run

ant入门(二)_第1张图片

你可能感兴趣的:(java,ant,String,Path,library,任务)