javac
Ant的javac任务用于实现编译Java程序的功能。下面来看一个简单的例子:
首先我们建立名为antstudy的Java工程,建立src目录为源代码目录,在src目录下建立HelloWorld.java这个类文件。该类文件的内容如下:
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello,Amigo");} }
同时在antstudy工程的根目录下建立build.xml文件,在该文件中编译src目录下的java文件,并将编译后的class文件放入build/classes目录中,在编译前,需清除classes目录,该文件的内容如下:
<?xml version="1.0"?> <!- javac .java编译为.class --> <project name="javacTest" default="compile" basedir="."> <target name="clean"> <delete dir="build"/> </target> <target name="compile" depends="clean"> <mkdir dir="build/classes"/> <javac srcdir="src" destdir="build/classes"/> </target> </project>
java 与 jar
<?xml version="1.0"?> <!- java运行 与 jar打包 --> <project name="javaTest" default="jar" basedir="."> <target name="clean"> <delete dir="build"/> </target> <target name="compile" depends="clean"> <mkdir dir="build/classes"/> <javac srcdir="src" destdir="build/classes"/> </target> <target name="run" depends="compile"> <java classname="HelloWorld"> <classpath> <pathelement path="build/classes"/> </classpath> </java> </target> <target name="jar" depends="run"> <jar destfile="helloworld.jar" basedir="build/classes"> <manifest> <attribute name="Main-class" value="HelloWorld"/> </manifest> </jar> </target> </project>
系统命令
在target标签内嵌入exec标签即可执行系统命令。
exec标签内的arg标签有两个常用参数。
values 是一个命令参数。如果参数中有空格,但又想将它作为单独一个值,则使用此属性。
line 表示用空格分隔的多个参数列表。
exec标签内的arg标签有两个常用参数。
values 是一个命令参数。如果参数中有空格,但又想将它作为单独一个值,则使用此属性。
line 表示用空格分隔的多个参数列表。
windows
Windows必须加 /c,。<?xml version="1.0" ?> <project name="shell" default="test_cmd" basedir="."> <target name="test_cmd"> <echo>cmd test</echo> <exec executable="cmd"> <arg line="/c echo %date%"/> </exec> <exec executable="cmd"> <arg line="/c dir"/> </exec> </target> </project>效果见图。
<?xml version="1.0" encoding="UTF-8"?> <!-- 调用d:\yichu\1.bat 因为1.bat使用了相对路径,而ant又实现不了cd命令,所以ant自己拼凑一个bat >为大于号的转义符 --> <project name="deploy" default="run"> <target name="run" > <exec executable="cmd" description="试验 cd 用法"> <arg value="/c echo cd d:\yichu\ > temp.bat"/> </exec> <exec executable="cmd" description="试验 cd 用法"> <arg value="/c echo call 1.bat >> temp.bat "/> </exec> <exec executable="cmd" description="试验 cd 用法"> <arg value="/c temp.bat"/> </exec> </target> </project>
<exec dir="c:\cefclient_final\" executable="c:\cefclient_final\cefsimple.exe" spawn="true"/>
上面一行的意思是在dir目录下执行executable程序,不管它什么时候结束,此行exec语句都退出,相当于异步调用。
linux
linux必须加 –c 。