ANT tutorial Step-by-Step

ANT tutorial Step-by-Step

ผมขอแนะนำวิธีการใช้ ant ใน java นะครับ

สำหรับใครที่เคยใช้ 'make' มาแล้ว ใน unix ก็คงเข้าใจได้ง่าย ๆ เพราะว่า ant ก็คือ โปรแกรมที่ใช้ในการ compile file หลาย ๆ file เอ๊ะ ถ้าใน ภาษาจาวา เราก็ต้องพูดว่า ใช้ในการสร้าง classes ขึ้นมา โดยเราเขียนเป็น ant script ขึ้นมา แล้วก็ใช้โปรแกรม ant compile โดยอ่านจาก ant script (build.xml)

 ก่อนใช้งาน ant ได้ ก็ต้องไป download ant ได้จาก http://ant.apache.org

เมื่อ load เสร็จเรียบร้อยก็จัดการ extract ให้ถูกที่ถูกทาง จากนั้นก็ แล้วก็ set ตัวแปรกันให้เรียบร้อยก่อน 

เริ่มแรกก็เป็น
ANT_HOME=C:\Program Files\Java\apache-ant-1.7.1
 
จากนั้นก็ตัวแปร path เพื่อให้เราสามารถเรียกใช้โปรแกรม ant จากที่ folder ไหนก็ได้
PATH=... C:\Program Files\Java\apache-ant-1.7.1\bin ...

คราวนี้ลงมือเขียนโปรแกรมง่าย ๆ ก็ HelloWorld เหมือนเดิม
โดยผมจะมีโครงสร้าง folder แบบนี้นะครับ

\
..\src
      ..\ant
            ..\Test.java        
            ..\build.xml        
..\classes

ใน file src\ant\Test.java มี source code ง่าย ๆ ดังนี้

package ant;

class Test {
   public static void main(String args[])  {
      System.out.println("test ANT");
   }
}

คราวนี้ก็มาถึงจุดสำคัญ ก็คือ ant script ซึ่งก็คือ src\ant\build.xml 
ผมเขียนไว้ดังนี้ครับ

<project basedir="." default="make">       <!--  เวลาสั่ง ant จะมีค่าเท่ากับ ant make -->

 <property name="root" value="../.." />                    <!-- กำหนดตัวแปร root ให้ไปที่ parent dir 2 ระดับ  -->
 <property name="classes" value="${root}/classes" />  <!-- กำหนดตัวแปร classes ให้ไปที่ ../../classes  -->
 <property name="srcroot" value="${root}/src" />

 <path id="project.class.path">
  <pathelement location="${classes}" />    <!--  กำหนด classpath ที่เราจะใช้ทำงาน -->
    </path>

 <target name="make"> <!--  เวลาสั่ง ant make มันจะ compile *.java ทั้งหมดที่อยู่ใน ./src/ant/*.java  -->
  <javac debug="true" srcdir="${srcroot}" includes="ant/**/*.java" destdir="${classes}">
  </javac>
 </target>

 <target name="run" depends="make" description="Run Test">  <!-- ant  run จะเรียก javac ant.Test  -->
  <java classname="ant.Test" classpathref="project.class.path"  fork="true">
  </java>
 </target> 

  <target name="clean" description="clean all classes"> <!-- ant  clean จะทำการลบ folder ant ใน ./classes  -->
  <delete dir="${classes}/ant"/>
  </target>
</project>


ผลลัพธ์
 

E:\java\ple\src\ant>ant make
Buildfile: build.xml

make:

BUILD SUCCESSFUL
Total time: 0 seconds

E:\java\ple\src\ant>ant run
Buildfile: build.xml

make:

run:
     [java] test ANT

BUILD SUCCESSFUL
Total time: 0 seconds

E:\java\ple\src\ant>ant clean
Buildfile: build.xml

clean:
   [delete] Deleting directory E:\java\ple\classes\ant

BUILD SUCCESSFUL
Total time: 0 seconds

 
สรุปปิดท้าย
Ant script ประกอบไปด้วย tag project แล้วใน tag project ก็จะมี

  • tag property ไว้กำหนด ค่าตัวแปรต่าง ๆ ที่จะนำไปใช้ ใน ant sciript
  • tag path ไว้กำหนด classpath
  • tag name (อันนี้เรากำหนดเองว่า ถ้าสั่ง ant ตามด้วยชื่อที่กำหนดใน tag name แล้ว จะสั่งให้มันทำอะไร  ซึ่งในตัวอย่างนี้ก็กำหนดไว้ 2 อย่างคือ สั่งให้ compile โดยคำสั่ง javac ซึ่งจะไป match กับ <javac ... /> และสั่งให้ run ซึ่งจะไป match กับ <java ... /> 

เรื่องราวของ ant ยังทำอะไรได้อีกมากมาย และจำเป็นอย่างมากในการเขียนโปรแกรมขนาดใหญ่
 แต่เบื้องต้น แค่นี้ก็พอใช้งาน ant ได้ในระดับหนึ่งแล้วครับ ไม่ต้องมานั่งพิมพ์ command line ยาว ๆ :-)