Apache Ant là gì?
Ant là một công cụ để build code java dựa trên trình biên dịch java. Theo anh Thi trong công ty nhận định thì Ant là “thằng cò” thôi vì nó chẳng làm gì cả mà chỉ nhận công việc rồi giao lại cho người khác làm, từ việc copy/delete files/directories, compile java source code, đóng gói (jar/war/ear), … Ừ, thì cò nhưng nếu không có cò thì bạn phải chạy lung tung, có cò bạn chỉ tốn ít tiền cho cò (học cách sử dụng Ant và viết file build.xml - tập các chỉ thị để ra lệnh cho Ant thực thi) là mọi việc của bạn như ý.
Lợi ích của "Ant"
Ant mang lại rất nhiều lợi ích, nó giúp bạn biên dịch mã nguồn một cách nhanh chóng. Biên dịch mã nguồn, đóng gói thành file .jar, và thậm chí sinh ra file docs chỉ trong một lệnh duy nhất. Chúng ta có thể áp dụng để biên dịch mã nguồn tiện lợi mà không cần phụ thuộc vào IDE. Nó có thể được áp dụng để build các ứng dụng từ Java SE đến Java EE và Java ME.
Tại sao lại gọi nó là "Ant"?
Theo James Duncan Davidson – tác giả tạo ra Ant, cái tên đó là từ viết tắt của "Another Neat Tool", tạm dịch là một "Công cụ gọn nhẹ khác".
Sau đó có những giải thích miêu tả Ant "có thể làm rất tốt các công việc build (bất kỳ cái gì)" hoặc "kiến tuy nhỏ nhưng có thể vận chuyển trọng lượng gấp nhiều lần trọng lượng nó" – qua đó ta có thể hiểu Ant có thể làm gì.
Một vài nét chấm phá về lịch sử của Ant
Ban đầu, Ant là một phần của Tomcat khi Tomcat được "hiến" cho Apache Software Foundation. Ant được viết bởi James Duncan Davidson, cũng là tác giả tạo ra Tomcat. Vào lúc đó Ant được dùng để build Tomcat thôi, chẳng làm gì khác nữa.
Sau đó, một vài dự án open source bằng java thấy rằng có thể dùng Ant để giải quyết những vấn đề mà họ gặp phải với Makefiles. Ant bắt đầu được sử dụng bới những dự án “hosted” ở Jakarta và những dự án java trước đây của Apache, rồi sau đó “lây truyền” đi như một virus và giờ đây nó là sự lựa chọn hàng đầu trong việc build code của nhiều dự án.
Vào tháng 01/ 2000, Ant được dời vào một CVS module riêng biệt [CVS – Concurrent Versions System là một chương trình quản lý source code, vai trò giống như Visual SourceSafe] và được nâng cấp lên thành một project đàng hoàng và độc lập với Tomcat, trở thành Apache Ant.
Bản release chính thức đầu tiên của Ant như một sản phẩm độc lập là Ant 1.1, phát hành vào 19/07/2000.
Cách sử dụng Ant
bạn cần download Ant đã. Bấm vào đây để download version mới nhất (hiện tại là Ant 1.9). Sau khi download xong, giải nén file zip vào một folder nào đó mà bạn thích, chẳng hạn "C:\ant".
Tạo một biến môi trường mới tên là "ANT_HOME":
- chọn "My Computer" ngoài desktop,
- chọn chuột phải, chọn Properties, chọn tab Advanced,
- chọn nút Environment Variables, chọn nút New (cái nào cũng được: user hoặc system).
- Nhập vào variable name = ANT_HOME, nhập vào variable value = thư mục mà bạn đã bung file zip, ví dụ ở đây là "C:\ant"". Xong chọn OK để hoàn tất.
Cũng trong màn hình Environment Variables, tìm đến biến PATH, chọn nó rồi chọn nút Edit để sửa value của nó bằng cách thêm vào phần đuôi của nó ";%ANT_HOME%\bin", phần đầu giữ nguyên không đụng đến.
Lưu ý là bạn cần cấu hình jdk trước khi cấu hình Ant. Cách làm cũng tương tự như Ant. Tạo biến JAVA_HOME với value là đường dẫn folder mà bạn cài đặt java (ở đây của mình là "C:\Program Files\Java\jdk1.6.0_21");
Như vậy giờ vào command line của Windows, bạn gõ "ant", bạn sẽ thấy dòng báo lỗi sau ( nếu bạn không chạy được lệnh "ant" có thể chuyển con trỏ đến "C:\ant\bin" và dùng lệnh "ant" bình thường):
Buildfile: build.xml does not exist!
Build failed
Đừng lo, vì bạn chưa có file build.xml nên khi gõ Ant nó đi tìm trong đường dẫn hiện tại mà không thấy file build.xml nào, nó sẽ báo lỗi như vậy. Việc tiếp theo bạn cần làm là viết file build.xml cho Ant thực thi.
File build.xml là giống như là một file script chứa các chỉ thị mà bạn muốn Ant thực thi. Và điều tuyệt vời là cú pháp file build.xml giống như cái đuôi file gợi ý, là xml. Sau đây là một file build.xml ví dụ:
<?xml version="1.0"?><project name="project_name" default="default_target" basedir="."> <property /> ... <target name="prepare"> ... </target> ...</project>
Kiểm tra ANT đã cài đặt và cấu hinh đúng chưa bằng cách thực hiện lệnh
ant -version
Nếu kết quả hiển thị tựa như sau (số phiên bản tùy vào bản ANT bạn đã cài) thì chuyển sang bước 2:
Apache Ant(TM) version 1.9.0 compiled on March 5 2013
Nếu báo lỗi thì hãy xem lại các tài liệu trên để biết cách cài đặt và cấu hình.
Checkout Source
sử dụng SVN Client để checkout hoặc export mã nguồn dự án (ở đây mình dùng RockyCommon tại http://open-ones.googlecode.com/svn/trunk/ProjectList/RockyCommon) về máy tính.
Chuyển vào thư mục mã nguồn, thực hiện lệnh
ant -f "duong dan den file build.xml"
Kết quả sẽ như sau :
C:\ant\bin>ant -f "D:\Works\ant demo\RockyCommon\build.xml"Buildfile: D:\Works\ant demo\RockyCommon\build.xml
clean: [echo] Delete the 'D:\Works\ant demo\RockyCommon\bin' and 'D:\Works\ant demo\RockyCommon\dist' directory trees
init: [mkdir] Created dir: D:\Works\ant demo\RockyCommon\dist [mkdir] Created dir: D:\Works\ant demo\RockyCommon\bin
compile: [echo] Complie sourse folder 'src' [javac] D:\Works\ant demo\RockyCommon\build.xml:76: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 13 source files to D:\Works\ant demo\RockyCommon\bin [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details.
dist: [copy] Copying 13 files to D:\Works\ant demo\RockyCommon\bin [jar] Building jar: D:\Works\ant demo\RockyCommon\dist\rocky-common-0.1.4-20130386020721.jar [echo] View the result within folder D:\Works\ant demo\RockyCommon\dist
BUILD SUCCESSFULTotal time: 1 second
Cấu trúc file build.xml
<?xml version="1.0" ?><project default="main"> <property name="message" value="Building the .tar.gz file." /> <property name="src" location="source" /> <property name="output" location="bin" /> <target name="main" depends="init, compile, compress"> <echo> ${message} </echo> </target> <target name="init"> <mkdir dir="${output}" /> </target> <target name="compile"> <javac srcdir="${src}" destdir="${output}" /> </target> <target name="compress"> <tar
destfile="${output}/Project.tar.gz"
basedir="${output}"
includes="*.class"
compression="gzip"/> </target></project>
Ebook : O Reilly - Ant The Definitive Guide 2nd Edition (2005)
Tham khảo :
http://ant.apache.org/manual/index.html
http://cak5.somee.com/Forums/vsbaiviet.asp?TID=6994
http://forum.gocit.vn/threads/can-ban-ant.326/
No comments :
Post a Comment