Ant中包含了java的一系列操作,例如编译、打包、运行等等。虽然现在已经有了很优秀的编辑工具Eclipse来代替我们做这些事情,但是对于开发人员来说,搞清楚这些基本运行方式还是很有必要的。
1.Ant编译、运行java代码
首先有这样一个java文件,注意这里不是默认包。
package com.ds.test;
public class HelloWorld {
public static void main(String arg[]){
System.out.println("hello world !");
System.out.println(arg[2]);
}
}
如果能够在dos下对java进行编译和运行十分了解,那么相应的Ant脚本也应该很容易理解。
<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="compile" basedir=".">
<property name="src" value="./src/main/java/com/ds/test"/>
<property name="dest" value="./src/main/webapp/WEB-INF/classes"/>
<property name="build" value="./src/main/webapp"/>
<!-- 编译 -->
<target name="compile">
<javac srcdir="${src}" destdir="${dest}" source="1.7" target="1.7" debug="false">
<classpath path="./src/main/webapp/WEB-INF/lib" />
</javac>
</target>
<!-- 运行 -->
<target name="run" depends="compile">
<!--注意此处的类名,由于不是默认包名-->
<java classname="com.ds.test.HelloWorld">
<classpath path="./src/main/webapp/WEB-INF/classes" />
<arg line="ds1"/><!--参数-->
<arg line="ds2"/>
</java>
</target>
<!-- 打包 -->
<target name="war" depends="complie">
<war destfile="${build}/newbssqyl.war" webxml="${build}/WEB-INF/web.xml">
<lib dir="${build}/WEB-INF/lib">
<include name="**" />
</lib>
<classes dir="${build}/WEB-INF/classes"/>
<fileset dir="${build}"/>
</war>
</target>
</project>
javac的常用属性:
- srcdir:java源文件的文件夹,必填。除非用了嵌套的标签。
- destdir:用于存放编译后class文件的文件夹,默认是当前文件夹。必填。
- includes:必须包括的文件模式的列表,以逗号或空格分隔。如果忽略,将包括所有文件。
- excludes:必须排除的文件模式的列表,以逗号或空格分隔。如果忽略,将不排除任何文件。
- target: 根据特定的虚拟机版本生成class文件。
- source:兼容某个JDK版本。
- classpath: 编译时需要使用的第三方jar包。
java的常用属性:
- classname/jar:要执行的类名或者jar包。必填。
- args:主函数的参数,多个参数用空格分开。
- classpath:要执行的类的位置。
war的常用属性:
- destfile/warfile:保存war包的地方。必填。
- webxml:web.xml的路径。必填。
- lib:lib包的位子。
- classes:类存放的位子。
- fileset:打包的目录。