ant笔记(二)ant的属性使用与引用外部变量,集成一个编译,拷贝,打包,运行的任务链

来源:互联网 发布:js中map遍历 编辑:程序博客网 时间:2024/05/22 15:00

build.xml

<?xml version="1.0" encoding="UTF-8"?><!--default指定默认执行的任务target表示的是每一项具体的任务depends表示依赖于另一个任务A,在执行B的是会去先执行A创建ant项目的流程1.创建文件夹(ant标准)src:存放源码build:所有的文件信息都保存在这个文件夹classes:编译好的所有文件保存在这个文件夹dist:存放project.jar2.将src文件夹的数据拷贝到build/src3.编译源代码4.将源代码打包为jar5.直接运行程序ant本身的属性:ant.fileant.homeant.java.versionant.project.nameant.versionbasedireclipse中配置ant1.Ant:修改Documentation的URL2.Ant->Runtime;设置Ant Home Entries为本地的Ant文件夹3.新建javaproject4.创建build.xml文件(open with Ant Edit文件)5.建立如下project6.右键执行--><!-- 如果文件夹换名,应先执行删除文件夹deleteDir任务,在更换build文件名 --><project default="execute"><!--使用属性定义相应的路径时,一定要使用location,会转换系统的分隔符--><property name="build.classes" location="${build.dir}/classes"></property><property name="build.src" location="${build.dir}/src"></property><property name="build.dist" location="${build.dir}/dist"></property><!-- 定义键值对实例 <property name="execute.class" value="ant.zttc.edu.cn.HelloWorld"></property>--><!-- 路径不建议放在properties中定义;如果属性太多可以在外部文件中定义 --><property file="build.properties"></property><!--把环境变量中的参数导出到env这个变量中进行使用--><property environment="env"></property><target name="test"><echo>${ant.home}</echo><echo>${ant.version}</echo><echo>${ant.java.version}</echo><echo>${env.catalina_home}</echo><echo>${env.java_home}</echo><echo>${env.OS}</echo></target><!-- 1.使用文件集:包含所有目录的所有文件 --><fileset id="src.path.set" dir="src" includes="**/*.*"></fileset><!-- 2.使用文件集:包含所有目录的所有文件 --><fileset id="src.path" dir="src"><!--包含的文件--><include name="**/*.*"/><!--不包含测试文件--><exclude name="**/Test*"/><exclude name="**/test*"/></fileset>    <target name="deleteDir"><delete dir="${build.dir}"></delete>    </target><target name="init" depends="deleteDir"><mkdir dir="${build.dir}"/><mkdir dir="${build.src}"/><mkdir dir="${build.classes}"/><mkdir dir="${build.dist}"/></target><!-- 如果目标文件存在,则不执行--><target name="copySrc" depends="init"><copy todir="${build.dir}/src/"><fileset refid="src.path"></fileset></copy></target><!--编译源文件--><target name="compile" depends="init"><javac destdir="${build.classes}" srcdir="src"></javac></target><!--打jar包;为了让jar可运行,需要加入MANIFEST.MF文件中加入Main-Class--><target name="jar" depends="compile"><jar destfile="${build.dist}/${jar.name}" basedir="${build.classes}"><manifest><attribute name="Main-Class" value="${execute.class}"/><attribute name="Build-By" value="Sid"/></manifest></jar></target><!--执行任务,基于jar和copySrc任务--><target name="execute" depends="jar,copySrc"><echo>基于类路径的classname来完成执行</echo><java classname="${execute.class}" classpath="${build.classes}"><!--main函数的参数--><arg value="张三"/><arg value="李斯"/></java><echo>基于jar文件来完成执行</echo><java jar="${build.dist}/${jar.name}" fork="true"><arg value="张三"/><arg value="李斯"/></java></target></project>

build.properties

build.dir=buildexecute.class=ant.zttc.edu.cn.HelloWorldjar.name=hello.jar