@wangwangheng
2015-06-23T07:03:56.000000Z
字数 3993
阅读 2377
开发工具
Ant默认使用build.xml的配置执行
例子:
<?xml version="1.0" encoding="UTF-8" ?><!--默认执行execute任务 --><project default="execute"><!-- 一个target表示一个任务,name属性指示任务名称 --><target name="compile"><javac srcdir="." destdir="."/></target><!-- depends表示依赖哪一个任务 --><target name="execute" depends="compile"><java classpath="." classname="HelloWorld"/></target></project>
1、创建文件夹
build:所有的文件信息都保存子这个文件夹中
src:所有的源文件都保存在这个文件夹中
classes:编译好的所有文件都保存在这个文件夹中
dist:编译好的jar文件都保存在这个文件夹中
2、将src文件夹的数据拷贝到build/src目录下
3、编译源文件
4、将源代码打包成为jar包
5、直接运行程序
<?xml version="1.0" encoding="UTF-8"?><project default="copySrc"><!-- 设定一组文件集来进行操作,dir指定文件集要进行选择的路径,通过id可指定文件集的名称,在使用的时候可以直接通过refid进行引用 --><fileset id="src.path" dir="src"><!-- include 用来指定包含的文件名 --><include name="**/*.java"/><!-- exclude 用来指定忽略的文件名 --><exclude name="**/Test*.java"/></fileset><target name="init"><!-- 创建和删除文件 --><delete dir="build"></delete><mkdir dir="build"/><mkdir dir="build/src"/><mkdir dir="build/classes"/><mkdir dir="build/dest"/></target><target name="copySrc" depends="init"><copy todir="build/src"><fileset refid="src.path"></fileset></copy></target></project>
执行日志:
Buildfile: D:\Android\Eclipse_Kepler\Android_Workspace\Workspace2\AntDemo\build.xmlinit:[delete] Deleting directory D:\Android\Eclipse_Kepler\Android_Workspace\Workspace2\AntDemo\build[mkdir] Created dir: D:\Android\Eclipse_Kepler\Android_Workspace\Workspace2\AntDemo\build[mkdir] Created dir: D:\Android\Eclipse_Kepler\Android_Workspace\Workspace2\AntDemo\build\src[mkdir] Created dir: D:\Android\Eclipse_Kepler\Android_Workspace\Workspace2\AntDemo\build\classes[mkdir] Created dir: D:\Android\Eclipse_Kepler\Android_Workspace\Workspace2\AntDemo\build\destcopySrc:[copy] Copying 1 file to D:\Android\Eclipse_Kepler\Android_Workspace\Workspace2\AntDemo\build\srcBUILD SUCCESSFULTotal time: 551 milliseconds
<target name="compile" depends="init"><javac srcdir="src" destdir="build/classes"></javac></target><target name="jar" depends="compile"><jar destfile="build/dist/person.jar" basedir="build/classes"><manifest><attribute name="Main-Class" value="com.xinye.antdemo.Main"/><attribute name="Build-By" value="Ant"/><attribute name="Author" value="王恒"/><attribute name="Date" value="2015年6月23日"/></manifest></jar></target>
<target name="run" depends="jar"><echo>基于classpath的classname执行</echo><java classname="com.xinye.antdemo.Main" classpath="build/classes"><arg value="张三"/><arg value="李四"/><arg value="王五"/><arg value="赵一"/></java><echo>基于jar包执行</echo><java jar="build/dist/person.jar" fork="true"><arg value="张三"/><arg value="111"/><arg value="222"/><arg value="333"/></java></target>
<property name="build.dir" value="build"></property><!--<property name="build.src" value="${build.dir}/src"></property><property name="build.classes" value="${build.dir}/classes"></property><property name="build.dist" value="${build.dir}/dist"></property><property name="build.jar" value="${build.dist}/person.jar"></property>--><!-- location和value的区别与使用:location指向绝对路径并且路径分隔符使用操作系统的分隔符;定义路径的时候一定要使用location而不是value;如果不是路径则使用value --><property name="build.src" location="${build.dir}/src"></property><property name="build.classes" location="${build.dir}/classes"></property><property name="build.dist" location="${build.dir}/dist"></property><property name="build.jar" location="${build.dist}/person.jar"></property><property name="run.classname" value="com.xinye.antdemo.Main"></property><!-- 引用属性 --><echo>${build.jar}</echo>
build.xml
<!-- 可以把属性定义到properties外部文件中,但是最好不要路径定义出去,因为无法使用location --><!--<property name="run.classname" value="com.xinye.antdemo.Main"></property>--><property file="property.properties"></property>
property.properties
run.classname = com.xinye.antdemo.Main
<!-- 把环境变量的内容导入到env中 --><property environment="env"></property><echo>${env.JAVA_HOME}</echo><echo>${env.CLASSPATH}</echo><!-- ant的property --><echo>${ant.file}</echo><echo>${ant.home}</echo><echo>${ant.java.version}</echo><echo>${ant.library.dir}</echo><echo>${ant.project.default-target}</echo><echo>${ant.project.name}</echo><echo>${ant.version}</echo>