ANT 笔记

一、常用标签

任务背景:用ANT编译java文件,将.class放到classes文件下。将classes文件夹打包成jar包。并使用java -jar来运行该包。

设置属性

<property name="dest" value="classes"></property>
<property name="src" value="src"></property>
<property name="jarPackge" value ="HuntDemo.jar" ></property>

1.建立文件夹

<target name="precompile" depends="clear">

  <mkdir dir="${dest}"/>

</target>

 

2.编译java文件----分两步走,先编译,再移动

<target name="compile" depends="precompile">
  <javac srcdir="${src}" <!--destdir="${dest}" --> ></javac>
</target>

 

3.移动class文件

fileset用来产生文件集合,利用<include name> 和<exclude name> 来进行文件匹配

*/*.class只包含目录下的class文件

**/*.class 子目录下的class文件 + 目录下的class文件

<target name="moveClasses" depends="compile">
  <move todir="${dest}">
    <fileset dir="${src}">
      <include name="**/*.class"/>
    </fileset>
  </move>
</target>

4.打包jar 文件

basedir:选择要打包的文件夹

destfile:打包后的文件

<manifest>: 向jar包中添加一个manifest文件

   <attribute> 指定manifest文件中的属性。 Main-Class:程序开始运行时首先加载的类

<target name="jar" depends="moveClasses">
  <jar basedir="${dest}" destfile="${jarPackge}" >
    <manifest >
      <attribute name="Main-Class" value="com.joe.Main"/>

    </manifest>
  </jar>
</target>

 

 

5.自定义标签

classpath:表明从哪里去找类

<taskdef name="display" classname="com.joe.Display" classpath="bin"></taskdef>

content 属性对应类里的setter方法

<target name="print">
  <display content="你好"/>
</target>

要继承org.apache.ant.Task类,并重写excute方法

public class Display extends Task {

private String content="nothing";


public String getContent() {
return content;
}


public void setContent(String content) {
this.content = content;
}

 

public void execute() throws BuildException {
// TODO 自动生成的方法存根
System.out.println(content);
}

posted @ 2014-01-22 17:48  jayroe  阅读(113)  评论(0)    收藏  举报