Hướng dẫn về Apache ANT: Công cụ xây dựng Ant là gì? Ví dụ

⚡ Tóm tắt thông minh

Apache ANT là một Java Công cụ xây dựng dựa trên XML tự động hóa quá trình biên dịch, kiểm thử, đóng gói và triển khai thông qua tệp xây dựng XML. Bài viết này định nghĩa công cụ đó. traclịch sử của nó, bao gồm Windows quá trình cài đặt, giải thích cấu trúc dự án và so sánh nó với Maven và... Gradle.

  • 🔨 Định nghĩa cốt lõi: Ant là viết tắt của Another Neat Tool (Một công cụ tuyệt vời khác), và nó chuyển đổi mã nguồn thành ứng dụng có thể thực thi từ dòng lệnh.
  • 📄 Tệp xây dựng: Mọi hướng dẫn đều nằm trong một tệp XML, thường được đặt tên là build.xml, và tệp này không yêu cầu bất kỳ ngôn ngữ lập trình bổ sung nào.
  • 🧱 Cấu trúc ba nút: Tệp cấu hình luôn lồng các tác vụ bên trong các mục tiêu, và các mục tiêu bên trong một phần tử dự án duy nhất.
  • 🔗 Kiểm soát sự phụ thuộc: Thuộc tính `depends` sắp xếp các mục tiêu, vì vậy quá trình biên dịch luôn chạy trước khi tạo tệp jar và trước khi triển khai.
  • ⚙️ Thiết lập môi trường: Quá trình cài đặt yêu cầu JDK, biến môi trường ANT_HOME và thư mục bin của Ant phải được thêm vào đường dẫn hệ thống.
  • 🆚 So sánh công cụ: Ant mang lại sự tự do về quy trình, Maven đảm bảo tính nhất quán bằng cách quản lý các phụ thuộc, và Gradle Kết hợp cả hai với một quá trình xây dựng theo kịch bản.
  • 🌍 Lợi ích về tính di động: Bản dựng này chạy giống hệt nhau trên Windows và Linux ở bất cứ đâu Java Máy ảo đã sẵn sàng.

Hướng dẫn ANT của Apache

Công cụ xây dựng là gì?

Công cụ xây dựng là một công cụ lập trình được sử dụng để xây dựng phiên bản mới của chương trình. Nó tự động tạo ra một ứng dụng thực thi từ bất kỳ mã nguồn nào.

Nếu không có công cụ biên dịch, nhà phát triển sẽ phải tự biên dịch từng tập tin mã nguồn, sao chép tài nguyên, chạy bộ kiểm thử và đóng gói kết quả mỗi khi có thay đổi. Công cụ biên dịch chỉ ghi lại các bước đó một lần và lặp lại chúng một cách chính xác trên mọi máy.

Kiến Apache là gì?

Kiến Apache là một Java-công cụ dòng lệnh dựa trên để xây dựng Java các ứng dụng có đầy đủ tính di động của thuần túy Java Nó cho phép các nhà phát triển áp dụng các nguyên tắc linh hoạt và phát triển dựa trên kiểm thử để tự động hóa các tác vụ phát triển lặp đi lặp lại như tạo tài liệu. Ant là viết tắt của Another Neat Tool (Một công cụ tuyệt vời khác).

Kiến Apache

Như sơ đồ minh họa, Ant đọc một tập tin xây dựng, xác định thứ tự các mục tiêu bên trong đó, và sau đó chạy các tác vụ riêng lẻ để biên dịch, sao chép, kiểm tra và đóng gói ứng dụng.

Công cụ Apache Ant Build dùng để làm gì?

Dưới đây là những lợi ích quan trọng khi sử dụng công cụ xây dựng:

  • Công cụ xây dựng cho phép bạn tự động hóa các tác vụ lặp đi lặp lại cụ thể như biên dịch mã nguồn, chạy thử nghiệm phần mềm và tạo tệp để triển khai phần mềm.
  • Các công cụ xây dựng hầu hết chạy mà không có giao diện người dùng đồ họa.
  • Nó giúp bạn chuyển đổi mã nguồn thành mã thực thi.
  • Nó cung cấp tùy chọn biên dịch lại tệp chỉ khi cần thiết.
  • Nó cho phép bạn biên dịch một lượng lớn tập tin trong một khoảng thời gian tương đối ngắn.
  • Hai công cụ xây dựng phổ biến rộng rãi được sử dụng bởi Java Các nhà phát triển là Apache Maven và Kiến.

Lịch sử của kiến ​​Apache

Bây giờ chúng ta sẽ tìm hiểu về lịch sử của công cụ xây dựng Apache Ant.

Dưới đây là các mốc lịch sử quan trọng từ công cụ Apache Ant:

  • James Duncan Davidson đã tạo ra nhân vật Ant vào tháng 7 năm 2000.
  • Ban đầu nó được sử dụng để xây dựng Tomcat và là một sản phẩm tích hợp sẵn trong bộ phân phối Tomcat.
  • Vào tháng 5 năm 2014, phiên bản Apache Ant 1.9.4 đã được phát hành với nhiều tính năng nâng cao.
  • Dòng 1.10.x bắt đầu từ năm 2017 và vẫn là nhánh được duy trì tích cực cho đến nay.
  • Phiên bản 1.10.17 được phát hành vào ngày 10 tháng 4 năm 2026 và yêu cầu cấu hình tối thiểu. Java 8 lần chạy.

Các tính năng của Kiến Apache

Dưới đây là các tính năng chính của Apache Ant:

  • Nó là một dự án mã nguồn mở.
  • Nó cho phép bạn chạy các bản dựng trên cả hai thiết bị. Windows và các hệ thống UNIX hoặc Linux.
  • Bạn chỉ cần JVMvì nó có thể chạy ở bất cứ nơi nào có JVM.
  • Nó cung cấp một loạt các nhiệm vụ được xác định trước.
  • Nó giúp bạn sao chép tập tin từ vị trí này sang vị trí khác.
  • Nó cung cấp giao diện để phát triển các tác vụ tùy chỉnh.
  • Nó cho phép bạn gọi các bản dựng từ dòng lệnh, tích hợp dễ dàng với... IDE miễn phí và thương mại.
  • Nó cho phép bạn triển khai các tập tin nhị phân lên máy chủ thử nghiệm.
  • Nó cung cấp một kiến ​​trúc có khả năng mở rộng.
  • Nó cung cấp khả năng tương thích ngược giữa các phiên bản.

Cách cài đặt và cấu hình Apache Ant trên Windows

Bây giờ chúng ta sẽ tìm hiểu quy trình cài đặt Apache Ant trên Windows.

Chúng tôi giả định rằng bạn đã tải xuống và cài đặt Java Bộ dụng cụ phát triển (JDK) trên máy tính của bạn. Hãy chắc chắn rằng biến môi trường JAVA_HOME được thiết lập thành thư mục nơi JDK của bạn được cài đặt. Thực hiện các bước sau để cài đặt Ant:

Bước 1) Tải xuống các tệp nhị phân.
Tải xuống các tệp nhị phân từ https://ant.apache.org/bindownload.cgi

Cài đặt và cấu hình Apache Ant trên Windows

Bước 2) Giải nén tệp.
Giải nén tệp zip này vào một vị trí thuận tiện, chẳng hạn như c:\folder, bằng cách sử dụng lệnh sau: WinZip, WinRAR, 7-Ziphoặc một công cụ tương tự.

Cài đặt và cấu hình Apache Ant trên Windows

Bước 3) Tạo một biến môi trường.
Tạo một biến môi trường có tên “ANT_HOME” và gán giá trị của biến đó là vị trí thư mục Ant.

  1. Nhấp chuột phải vào biểu tượng "Máy tính này".
  2. Nhấp vào Thuộc tính.

Cài đặt và cấu hình Apache Ant trên Windows

Bước 4) Đi đến cài đặt hệ thống.
Nhấp vào “Cài đặt hệ thống nâng cao”.

Cài đặt và cấu hình Apache Ant trên Windows

Bước 5) Về thuộc tính hệ thống,
Nhấp chuột vào tab “Nâng cao”.

Cài đặt và cấu hình Apache Ant trên Windows

Bước 6) Tìm các biến môi trường.
Nhấp vào nút “Biến môi trường…”.

Cài đặt và cấu hình Apache Ant trên Windows

Bước 7) Tạo một biến mới.
Nhấp vào “Mới” để tạo biến người dùng mới.

Cài đặt và cấu hình Apache Ant trên Windows

Bước 8) Nhập thông tin chi tiết của biến.
Nhập thông tin chi tiết về biến người dùng mới.

  1. Nhập tên biến là ANT_HOME.
  2. Nhập giá trị biến là thư mục nơi Ant đã được giải nén, ví dụ: C:\apache-ant-1.10.17.
  3. Nhấp vào nút “OK”.

Cài đặt và cấu hình Apache Ant trên Windows

Bước 9) Biến đã được tạo.
Nhấp vào nút “OK”.

Cài đặt và cấu hình Apache Ant trên Windows

Bước 10) Đóng màn hình.
Bấm vào “OK” để đóng màn hình.

Cài đặt và cấu hình Apache Ant trên Windows

💡 Mẹo: Biến môi trường ANT_HOME phải trỏ đến thư mục cài đặt, chứ không phải thư mục bin bên trong đó. Sau đó, thêm vào... %ANT_HOME%\bin Thêm vào biến Path, nhờ đó lệnh ant được nhận diện từ bất kỳ thư mục nào.

Bạn có thể xác minh việc cài đặt Ant thành công bằng cách gõ...ping Lệnh “ant -version” trong cửa sổ dòng lệnh.

Bạn sẽ thấy màn hình sau:

Cài đặt và cấu hình Apache Ant trên Windows

Ví dụ về Apache ANT

Tệp cấu hình bên dưới định nghĩa một mục tiêu duy nhất có tên là hello, mục tiêu này sẽ in ra một thông báo. Phần tử project khai báo một tên và một mục tiêu mặc định, vì vậy Ant biết phải chạy gì khi không có mục tiêu nào được chỉ định trên dòng lệnh.

<?xml version="1.0"?>
<project name="HelloWorld" default="hello" basedir=".">

    <target name="hello">
        <echo>Hello, World</echo>
    </target>

</project>

Lưu tệp này với tên “build.xml”, sau đó làm theo hai bước sau:

  • Mở cửa sổ dòng lệnh và chuyển đến thư mục chứa tệp build.xml.
  • chạy ant hello, hoặc đơn giản antVì "hello" được khai báo là mục tiêu mặc định. Để sử dụng tên tệp khác, hãy chạy lệnh sau: ant -f mybuild.xml hello.

Đầu ra:

Buildfile: C:\projects\demo\build.xml

hello:
     [echo] Hello, World

BUILD SUCCESSFUL
Total time: 0 seconds

Cấu trúc dự án ANT

Cấu trúc dự án ANT

Cấu trúc dự án ANT

Như sơ đồ cấu trúc cho thấy, mỗi công trình sẽ bao gồm ba nút:

  • Dự án
  • Target
  • Nhiệm vụ

Dự án

Mọi thứ bên trong tệp xây dựng trong Apache ANT đều nằm trong một dự án.

Các thuộc tính:

  • Tên: Tên của dự án.
  • Basedir: Đây là thư mục mà từ đó tất cả các đường dẫn sẽ được tính toán. Có thể ghi đè điều này bằng cách sử dụng thuộc tính “basedir”.
  • Mặc định: Giúp bạn xác định mục tiêu mặc định cho dự án này. Nếu không chỉ định mục tiêu nào, Ant sẽ thực thi mục tiêu mặc định.

Target

Mục tiêu là một tập hợp các nhiệm vụ, được xác định để đạt được một trạng thái cụ thể trong quá trình xây dựng.

Các thuộc tính:

  • Tên: Tên mục tiêu (bắt buộc).
  • Description: Description của mục tiêu.
  • Phụ thuộc: Mục tiêu hiện tại phụ thuộc vào mục tiêu nào.
  • Nếu: Chỉ thực thi mục tiêu nếu thuộc tính của mục tiêu được thiết lập giá trị.
  • Trừ khi: Chỉ thực thi mục tiêu nếu giá trị thuộc tính chưa được thiết lập.

Nhiệm vụ

Một tác vụ là một đoạn mã có thể được thực thi. Các tác vụ có nhiều đối số hoặc thuộc tính.

Phương pháp chung để viết một bài tập là:

<name attribute1="value" attribute2="value2"…/>

Bạn có thể sử dụng một tác vụ có sẵn hoặc tự tạo tác vụ của riêng mình. Bảng dưới đây liệt kê các tác vụ xuất hiện trong hầu hết mọi ứng dụng. Java Tệp xây dựng.

Nhiệm vụ Mục đích Các thuộc tính điển hình
bỏ lỡ In thông báo ra bảng điều khiển. tin nhắn
mkdir Tạo một thư mục dir
xóa Xóa tệp hoặc thư mục thư mục, bao gồm các thư mục trống
tiếng Java Biên dịch Java tập tin nguồn srcdir, destdir, includeantruntime
bình Đóng gói các lớp vào tệp lưu trữ jar. destfile, basedir
bản sao Sao chép tập tin giữa các vị trí tệp, thư mục
quân đội Chạy thử nghiệm đơn vị lỗi halton, tóm tắt bản in

Ví dụ hoàn chỉnh về build.xml với nhiều tùy chọn. Targets

Một tập tin xây dựng thực tế sẽ liên kết nhiều mục tiêu với nhau. Thuộc tính `depends` đảm bảo thứ tự thực hiện, vì vậy Ant sẽ dọn dẹp thư mục đầu ra, biên dịch mã nguồn, và chỉ sau đó mới xây dựng tệp jar.

<?xml version="1.0"?>
<project name="DemoApp" default="jar" basedir=".">

    <!-- reusable values -->
    <property name="src.dir"   value="src"/>
    <property name="build.dir" value="build"/>

    <target name="clean" description="Remove previous output">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile" depends="clean" description="Compile sources">
        <mkdir dir="${build.dir}/classes"/>
        <javac srcdir="${src.dir}" destdir="${build.dir}/classes"
               includeantruntime="false"/>
    </target>

    <target name="jar" depends="compile" description="Package the jar">
        <mkdir dir="${build.dir}/jar"/>
        <jar destfile="${build.dir}/jar/DemoApp.jar"
             basedir="${build.dir}/classes">
            <manifest>
                <attribute name="Main-Class" value="com.guru99.Main"/>
            </manifest>
        </jar>
    </target>

</project>

Đầu ra:

Buildfile: C:\projects\DemoApp\build.xml

clean:
   [delete] Deleting directory C:\projects\DemoApp\build

compile:
    [mkdir] Created dir: C:\projects\DemoApp\build\classes
    [javac] Compiling 3 source files to C:\projects\DemoApp\build\classes

jar:
    [mkdir] Created dir: C:\projects\DemoApp\build\jar
      [jar] Building jar: C:\projects\DemoApp\build\jar\DemoApp.jar

BUILD SUCCESSFUL
Total time: 1 second

Kiến Apache vs Maven vs Gradle

Ba công cụ xây dựng chính chiếm ưu thế. Java Mỗi hệ sinh thái lại có quan điểm khác nhau về mức độ cấu trúc cần áp đặt.

Tham số Kiến Apache Apache Maven Gradle
Định dạng kịch bản xây dựng XML XML Groovy hoặc Kotlin DSL
Phương pháp tiếp cận Theo quy trình, bạn xác định từng bước. Khai báo, ưu tiên quy ước hơn cấu hình Khai báo với các phần mở rộng được viết bằng kịch bản
Quản lý sự phụ thuộc Không phải là tính năng tích hợp sẵn, được thêm vào thông qua Apache Ivy. Được tích hợp với kho lưu trữ trung tâm. Được tích hợp sẵn, tương thích với Maven.
Cấu trúc dự án Hoàn toàn miễn phí Bố cục tiêu chuẩn cố định Dựa trên quy ước nhưng có thể bị thay đổi
Các bản dựng tăng dần Giới hạn do bị che khuất Giới hạn do bị che khuất Vâng, với bộ nhớ đệm biên dịch.
Đường cong học tập Thấp đối với người dùng XML Trung bình Dốc hơn, yêu cầu DSL
Phù hợp nhất cho Các dự án kế thừa và các công trình được tùy chỉnh cao. Tiêu chuẩn Java dự án Mô-đun đa dạng lớn và Android dự án

Ant vẫn là lựa chọn thực tế khi quá trình xây dựng không tuân theo bố cục tiêu chuẩn, hoặc khi một dự án hiện có đã phụ thuộc vào các mục tiêu được viết thủ công.

Các phương pháp hay nhất khi sử dụng Apache Ant

Dưới đây là một số phương pháp tốt nhất để sử dụng Apache Ant.

  • Bạn nên tự động đánh số bản dựng bằng cách sử dụng các tệp thuộc tính.
  • Triển khai quy trình xây dựng có thể cấu hình với sự trợ giúp của các tệp thuộc tính mặc định và tệp thuộc tính xây dựng. Các tệp này cho phép bạn lưu trữ các thuộc tính xác định dữ liệu cho quy trình xây dựng của mình, chẳng hạn như phiên bản trình biên dịch và cài đặt tối ưu hóa.
  • Bạn có thể sử dụng lại các thư viện dựng sẵn bằng cách sử dụng các tệp thuộc tính thư viện.
  • Gán thuộc tính mô tả cho mỗi mục tiêu, để ant -projecthelp Liệt kê bản tóm tắt hữu ích về quá trình xây dựng.
  • Hãy giữ thư mục đích làm sạch riêng biệt và tuyệt đối không xóa thư mục chứa cả các tệp nguồn.

Ưu điểm của việc sử dụng Apache Ant

Dưới đây là những lợi ích của việc sử dụng Apache Ant:

  • Ant là một công cụ trung lập về nền tảng, vì vậy nó giúp bạn quản lý các thuộc tính đặc thù của nền tảng, chẳng hạn như dấu phân cách tệp.
  • Ant cho phép bạn thực hiện các tác vụ dành riêng cho nền tảng, chẳng hạn như sửa đổi thời gian sửa đổi của một tệp bằng lệnh 'touch'.
  • Các tập lệnh Ant được viết bằng ngôn ngữ đơn giản. XMLVì vậy, nếu bạn đã quen thuộc với XML, bạn sẽ có thể học Ant một cách nhanh chóng.
  • Ant cung cấp một danh sách lớn các tác vụ được định sẵn.
  • Nó cung cấp một giao diện để phát triển.ping các nhiệm vụ tùy chỉnh.
  • Bạn có thể dễ dàng gọi Ant từ dòng lệnh, cho phép tích hợp với các IDE miễn phí và thương mại.
  • Bạn chỉ cần một JVM, vì vậy nó có thể chạy ở bất cứ nơi nào có sẵn JVM.
  • Apache Ant là một thư viện mã nguồn mở cho phép người dùng truy cập mã nguồn và tái tạo nó.
  • Apache Ant là một công cụ đa nền tảng cho phép bạn xử lý... Java cấu trúc đường dẫn lớp và thư mục tệp một cách hợp lý.
  • Apache Ant có thể mở rộng dễ dàng bằng cách sử dụng Java và các ngôn ngữ lập trình khác.
  • Apache Ant cung cấp hỗ trợ tích hợp cho việc phát triển J2EE, chẳng hạn như biên dịch và đóng gói EJB.
  • Bạn có thể sử dụng nó cho một dự án cá nhân nhỏ cũng như cho một dự án phần mềm lớn hoặc trang web.

Ant thường được kết hợp với trình chạy thử nghiệm và máy chủ tích hợp liên tục. Xem thêm JUnit cho lớp kiểm thử, Jenkins cho các bản dựng theo lịch trình, và sử dụng Apache Ant với Selenium để tự động hóa kiểm thử trình duyệt. Các báo cáo được tạo ra trong quá trình xây dựng có thể được hiển thị bằng JasperBáo cáo.

Câu Hỏi Thường Gặp

Ant là viết tắt của Another Neat Tool (Một công cụ tuyệt vời khác). James Duncan Davidson đã tạo ra nó vào tháng 7 năm 2000 khi đang làm việc trên bản dựng Tomcat, và sau đó tặng nó cho Apache Software. Foundation.

Không, nhưng Ant mặc định tìm kiếm tệp build.xml trong thư mục hiện tại. Bất kỳ tên nào khác đều hoạt động khi được truyền kèm tùy chọn -f hoặc -buildfile trên dòng lệnh.

Không thể tự làm được. Apache Ivy là dự án bổ trợ giúp giải quyết các phụ thuộc, và nó có thể tải xuống các artifact từ cùng các kho lưu trữ mà Maven sử dụng.

Thư mục bin bị thiếu trong biến Path, hoặc biến môi trường ANT_HOME trỏ đến thư mục sai. Hãy mở một cửa sổ dòng lệnh mới sau khi chỉnh sửa các biến, vì các cửa sổ hiện có sẽ giữ lại các giá trị cũ.

Đúng vậy, đối với các mục tiêu biên dịch, jar và kiểm thử tiêu chuẩn. Hãy kiểm tra các mục trong classpath và thuộc tính includeantruntime, vì các tệp được tạo thường bỏ qua chúng và tạo ra các cảnh báo khó hiểu.

Đúng vậy, để duy trì hệ thống cũ. Java các hệ thống mà việc di chuyển bản dựng hiện có không hề rẻ. Các dự án mới thường bắt đầu với Maven hoặc Gradle, điều mà các công cụ AI cũng hỗ trợ một cách đáng tin cậy hơn.

Tóm tắt bài viết này với: