一:介绍:
ant 是jakarta的一个编译工具,如果你了解linux/Unix下的makefile你就很容易
理解ant的用途了。ant最适合你使用UltraEdit(EditPlus)写java程序,然后你使用ant去编译,同时javadoc ,生成一个jar,war,实现文件的copy都可以在build.xml通过不同的tager去实现,还是很方便的一个东东强烈推荐是使用。
二:下载
你可以从下面的地址下载到ant,目前版本:1.41
http://jakarta.apache.org/builds/jakarta-ant/release/v1.4.1/bin/
三:安装
a:)Windows
1:解压你下载的文件,会有一个jakarta-ant(版本号的)目录产生,把他改名为ant
2:copy ant 目录到你需要的位置。
3:在环境变量中添加:ANT_HOME=ant的安装目录,path中加$ANT_HOME$\in;注意你同时必须已经安装了jdk,并添加了JAVA_HOME的环境变量,同时早path中加了$JAVA_HOME$\in;
b:)Linux/Unix
1:解压你下载的文件,会有一个jakarta-ant(版本号的)目录产生,把他改名为ant
2:copy ant 目录到你需要的位置。
3:在环境变量中添加:ANT_HOME=ant的安装目录,path中加$ANT_HOME$\in;注意你同时必须已经安装了jdk,并添加了JAVA_HOME的环境变量,同时早path中加了$JAVA_HOME$\in;实现修改环境变量你需要修改.bash_profile文件。
如下
ANT_HOME=/usr/local/ant
JAVA_HOME=/usr/local/jdk
PATH=$PATH:$HOME/bin:/usr/local/ant/bin:/usr/local/jdk/bin
export PATH ANT_HOME JAVA_HOME
四:编写build.xml
build.xml相当Linux下的makefile,具体的实现都在build.xml中实现。
我给给例子说明一下。
build.xml
1<project basedir="../.." default="build" name="bingo">
2<!--basedir设定工作目录-->
3<property name="version" value="1.0"></property>
4<!-- The base directory relative to which most targets are built -->
5<property name="base" value="."></property>
6<!-- The directory where source files are stored. -->
7<property name="java.source.dir" value="bingo/src"></property>
8<!--代码保存路径-->
9<!-- Destination for compiled files -->
10<property name="javac.dest" value="bingo/classes"></property>
11<!--class保存路径-->
12<!-- Destination for generated jar files -->
13<property name="jar.dest" value="bingo/jar"></property>
14<!--jar文件保存路径-->
15<!-- Destination for documentation files generated or not -->
16<property name="docs" value="bingo/docs"></property>
17<!--javadoc文件保存路径-->
18<!-- Destination for javadoc generated files -->
19<property name="javadoc.dest" value="bingo/docs"></property>
20<!-- The stem where most log4j source code is located. -->
21<property name="stem" value="com/bingo"></property>
22<property name="base-files" value="include"></property>
23<!-- Original manifest.mf file before filtering. -->
24<property name="manifest.src" value="bingo/build/manifest.mf"></property>
25<!-- Some targets needs a more precise stem. -->
26<property name="BSTEM" value="${java.source.dir}/${stem}"></property>
27<property name="tomcat.dir" value="c:/Apache/Tomcat"></property>
28<property name="webapp.dir" value="${tomcat.dir}/webapps/ROOT/WEB-INF/classes"></property>
29<!--List all Package used in this project -->
30<property name="PackageList" value="
31com.bingo,
32com.bingo.database,
33com.bingo.dbocw,
34com.bingo.util,
35com.bingo.taglibs.jndi,
36com.bingo.finance.database,
37com.bingo.finance.entity,
38com.bingo.finance.manager"></property>
39<!--你的project中所有的包-->
40<!-- List all jar or file used in this project -->
41<property name="classpath" value="${classpath};
42${base-files}/tomcat/servlet.jar;
43${base-files}/tomcat/webserver.jar;
44${base-files}/log4j/log4j.jar;
45${base-files}/log4j/log4j-core.jar"></property>
46<!--你需要用到的包-->
47<target name="init">
48<tstamp></tstamp>
49</target>
50<target depends="init" name="build">
51<echo>
52Building...
53</echo>
54<mkdir dir="${javac.dest}"></mkdir>
55<javac classpath="${classpath}" debug="on" destdir="${javac.dest}" srcdir="${java.source.dir}"></javac>
56</target>
57<!-- ================================================================= -->
58<!-- Copy class files to tomcat dir. -->
59<!-- ================================================================= -->
60<target depends="build" name="copy">
61<copy todir="${webapp.dir}/com/bingo">
62<fileset dir="${javac.dest}/com/bingo">
63<include name="*.class"></include>
64</fileset>
65</copy>
66<copy todir="${webapp.dir}/com/bingo/util">
67<fileset dir="${javac.dest}/com/bingo/util">
68<include name="*.class"></include>
69</fileset>
70</copy>
71<copy todir="${webapp.dir}/com/bingo/database">
72<fileset dir="${javac.dest}/com/bingo/database">
73<include name="*.class"></include>
74</fileset>
75</copy>
76<copy todir="${webapp.dir}/com/bingo/dbocw">
77<fileset dir="${javac.dest}/com/bingo/dbocw">
78<include name="*.class"></include>
79</fileset>
80</copy>
81<copy todir="${webapp.dir}/com/bingo/finance/database">
82<fileset dir="${javac.dest}/com/bingo/finance/database">
83<include name="*.class"></include>
84</fileset>
85</copy>
86<copy todir="${webapp.dir}/com/bingo/finance/entity">
87<fileset dir="${javac.dest}/com/bingo/finance/entity">
88<include name="*.class"></include>
89</fileset>
90</copy>
91<copy todir="${webapp.dir}/com/bingo/finance/manager">
92<fileset dir="${javac.dest}/com/bingo/finance/manager">
93<include name="*.class"></include>
94</fileset>
95</copy>
96</target>
97<!-- ================================================================= -->
98<!-- Remove all generated (compiled) class files. -->
99<!-- ================================================================= -->
100<target depends="init" name="clean">
101<delete dir="${javac.dest}/"></delete>
102</target>
103<!-- ================================================================= -->
104<!-- Remove all backup files. -->
105<!-- ================================================================= -->
106<target depends="init" name="delete">
107<delete>
108<fileset dir="${java.source.dir}/com/bingo">
109<include name="*.bak"></include>
110</fileset>
111</delete>
112<delete>
113<fileset dir="${java.source.dir}/com/bingo/util">
114<include name="*.bak"></include>
115</fileset>
116</delete>
117<delete>
118<fileset dir="${java.source.dir}/com/bingo/database">
119<include name="*.bak"></include>
120</fileset>
121</delete>
122<delete>
123<fileset dir="${java.source.dir}/com/bingo/finance/database">
124<include name="*.bak"></include>
125</fileset>
126</delete>
127<delete>
128<fileset dir="${java.source.dir}/com/bingo/finance/entity">
129<include name="*.bak"></include>
130</fileset>
131</delete>
132<delete>
133<fileset dir="${java.source.dir}/com/bingo/finance/manager">
134<include name="*.bak"></include>
135</fileset>
136</delete>
137</target>
138<!-- ================================================================= -->
139<!-- Remove the temporary manifest file, actual work is done in the -->
140<!-- dependencies. -->
141<!-- ================================================================= -->
142<target depends="build" name="prejar">
143<mkdir dir="${jar.dest}"></mkdir>
144<filter token="version" value="${version}"></filter>
145<copy file="${manifest.src}" filtering="true" tofile="${jar.dest}/manifest.mf"></copy>
146</target>
147<!-- ================================================================= -->
148<!-- This target Create bingo.jar -->
149<!-- ================================================================= -->
150<target depends="prejar" name="jar">
151<delete file="${jar.dest}/bingo.jar"></delete>
152<jar basedir="${javac.dest}" jarfile="${jar.dest}/bingo.jar" manifest="${jar.dest}/manifest.mf"></jar>
153</target>
154<!-- ================================================================= -->
155<!-- This target builds the javadoc files. -->
156<!-- ================================================================= -->
157<target depends="build,init" name="javadoc">
158<mkdir dir="${javadoc.dest}"></mkdir>
159<javadoc author="true" classpath="${classpath}" destdir="${javadoc.dest}" header="Bingo Free Java Code${version}" packagenames="${PackageList}" protected="true" sourcepath="${java.source.dir}" use="true" version="true" windowtitle="Bingo Free Java Code Version ${version}"></javadoc>
160</target>
161</project>