@wangwangheng
2015-06-23T07:03:56.000000Z
字数 3993
阅读 2200
开发工具
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.xml
init:
[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\dest
copySrc:
[copy] Copying 1 file to D:\Android\Eclipse_Kepler\Android_Workspace\Workspace2\AntDemo\build\src
BUILD SUCCESSFUL
Total 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>