Ant:Ant 入門

背景

自從有了 Maven 之後,Ant 視乎就不流行了,不過 Ant 仍是有其應用場景的,Ant 的思想比較簡潔,以下:java

  1. 一個 project 包含多個 target(相似成員方法)。
  2. 一個 target 包含多個 task(相似語句)。
  3. project 中能夠聲明 property(相似成員變量)。
  4. project 中能夠聲明 path (特殊的成員變量)。
  5. target 能夠聲明其 depends。

示例

build.xml
app

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <project name="02-ant" basedir="." default="help">
 3     <property name="src" value="src" />
 4     <property name="classes" value="bin" />
 5     <property name="output" value="output" />
 6 
 7     <path id="classpath">
 8         <pathelement path="${classes}" />
 9     </path>
10 
11     <target name="help" description="幫助">
12         <echo>help - 幫助</echo>
13         <echo>compile - 編譯</echo>
14         <echo>run - 運行</echo>
15         <echo>build - 打包</echo>
16         <echo>clean - 清理</echo>
17     </target>
18 
19     <target name="compile" description="編譯">
20         <delete dir="${classes}" />
21         <mkdir dir="${classes}" />
22         <javac srcdir="${src}" destdir="${classes}" debug="true" includeantruntime="false">
23             <classpath refid="classpath" />
24         </javac>
25     </target>
26 
27     <target name="run" description="運行" depends="compile">
28         <java classname="Program" fork="yes">
29             <classpath refid="classpath" />
30             <arg line="段光偉" />
31         </java>
32     </target>
33 
34     <target name="build" description="打包" depends="compile">
35         <delete dir="${output}" />
36         <mkdir dir="${output}" />
37         <jar destfile="${output}/app.jar" basedir="${classes}" includes="**/*.class">
38             <manifest>
39                 <attribute name="Main-Class" value="Program"/>
40                 <attribute name="Class-Path" value="${classes}"/>
41                 <attribute name="classpath" value="${classes}"/>
42             </manifest>
43         </jar>
44     </target>
45     
46     <target name="clean" description="清理">
47         <delete dir="${classes}" />
48         <delete dir="${output}" />
49     </target>
50 
51 </project>

目錄結構工具

運行結果ui

備註

不少非 Java 環境都使用了 Ant,如:ExtJs 提供的工具。spa

相關文章
相關標籤/搜索