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);
}
浙公网安备 33010602011771号