2009-03-29 53 views
5

Tôi đã cố gắng để hiểu Ant được sử dụng cho nhưng tôi vẫn không nhận được nó.Làm thế nào để sử dụng Ant?

Ai đó có thể cung cấp cho tôi một trường hợp sử dụng mà Ant được sử dụng, một điều tôi có thể thử xem tại sao Ant hữu ích và tôi có thể sử dụng loại nội dung nào?

Tôi phát triển Java trong Eclipse và tôi chỉ mới bắt đầu với servlets và Google Web Toolkit.

+1

Có hiệu lực trùng lặp của http://stackoverflow.com/questions/610732/what-is-build-automation-software-for-example-ant –

+0

(Trong đó câu trả lời cho câu hỏi đó trả lời trực tiếp câu hỏi này.) –

Trả lời

17

Kiến là công cụ xây dựng. Ví dụ, bạn có một số dự án trong không gian làm việc Eclipse của bạn, tất cả đều là các phần của một ứng dụng lớn hơn. Để xây dựng tất cả vào một tệp jar với các phụ thuộc được bao gồm, bạn có thể chọn tất cả các dự án và xuất chúng dưới dạng tệp jar, nhưng điều đó hơi cồng kềnh.

Ant là giải pháp có thể mở rộng. Bạn xác định quá trình xây dựng trong XML, và kiến ​​biên dịch các tệp java của bạn theo công thức này.

Kiến cũng có thể làm nhiều hơn việc xây dựng. Tôi đã làm việc tại một công ty mà cơ chế triển khai là các gói Debian trong kho lưu trữ của chính chúng ta. Chúng tôi có các tập lệnh Ant để xây dựng các tệp jar, sắp xếp chúng và một số tệp siêu dữ liệu vào gói Debian, đưa chúng vào kho lưu trữ và tạo lại tệp kê khai kho lưu trữ.

Như với bất kỳ thứ gì Java, có rất nhiều cấu hình bạn cần để có được đầu của bạn trước khi bạn thành thạo với Ant, nhưng một số hướng dẫn cơ bản sẽ cung cấp cho bạn một ý tưởng về những gì bạn đang nhận được chính mình vào.

4

Ant được sử dụng, như bất kỳ công cụ xây dựng nào, để tự động hóa các tác vụ lặp lại của việc tạo mã của bạn.

Thay vì chạy javac mỗi lần bằng tay, bạn đặt lệnh vào một tập lệnh Ant và sau đó khi bạn chạy kiến ​​nó sẽ chạy javac cho bạn.

quá trình xây dựng tiêu biểu của tôi với kiến ​​đi một cái gì đó như thế này:

  • chạy javac vào nguồn
  • chạy javac trên tets
  • chạy thiết bị đo đạc Cobertura vào nguồn (này là dành cho mã số bảo hiểm)
  • kết hợp các lớp học từ nguồn
  • jar lên các lớp học có nhạc cụ cobertura
  • jar up the u lớp học thử nghiệm nit
  • chạy checkstyle, PMD, FindBugs vào nguồn để tìm cảnh báo
  • chạy thử nghiệm đơn vị qua Cobertura để có được mã số bảo hiểm của họ

Vì vậy, đó là 8 bước mà tôi đã thực hiện trên mỗi xây dựng mà tôi có thể làm đơn giản bằng cách chạy "kiến".

2

Ant là tệp tạo tệp dựa trên XML.

Bạn sẽ không thấy nhiều lợi ích khi sử dụng Ant nếu bạn là một nhà phát triển duy nhất đã xây dựng và đóng gói mã thành công bằng cách sử dụng IDE như Eclipse.

Lợi ích lớn hơn đến khi bạn có một nhóm cộng tác trên mã. Sau đó, bạn sẽ nhận được một tăng lớn nếu bạn sử dụng Cruise Control hoặc một số cơ sở tích hợp liên tục khác. CC yêu cầu tệp build.xml của Ant.

0

Đây là tài liệu ANT và giải thích nó khá tốt.

Tại sao một công cụ xây dựng khác khi có đã thực hiện, gnumake, nmake, jam và các thiết bị khác? Vì tất cả những công cụ này có các giới hạn mà tác giả gốc của Ant không thể sống khi phát triển phần mềm trên nhiều nền tảng. Công cụ tạo giống vốn đã là dựa trên vỏ: chúng đánh giá tập hợp các phụ thuộc , sau đó thực thi các lệnh không giống với những gì bạn sẽ phát hành trên vỏ . Điều này có nghĩa là bạn có thể dễ dàng mở rộng các công cụ này bằng cách sử dụng hoặc viết bất kỳ chương trình nào cho Hệ điều hành mà bạn đang thực hiện ; tuy nhiên, điều này cũng có nghĩa là mà bạn giới hạn mình với hệ điều hành hoặc ít nhất là loại hệ điều hành, chẳng hạn như Unix, mà bạn đang làm việc.

Makefiles vốn đã là điều ác. Bất kỳ ai đã từng làm việc với họ trong bất kỳ thời gian nào đều đã gặp phải sự cố xảy ra ở tab . "Lệnh của tôi có không thực hiện vì tôi có một khoảng trống trước tab của tôi không? !!" tác giả gốc của Cách kiến ​​quá nhiều lần. Các công cụ như Jam đã giải quyết vấn đề này ở mức độ cao, nhưng vẫn có một định dạng khác để sử dụng và ghi nhớ.

Kiến khác. Thay vì một mô hình nơi nó được mở rộng với các lệnh dựa trên vỏ, Ant được mở rộng bằng cách sử dụng các lớp Java . Thay vì viết các lệnh shell , các tệp cấu hình là dựa trên XML, gọi ra một cây mục tiêu nơi các tác vụ khác nhau được thực hiện. Mỗi tác vụ được điều khiển bởi một đối tượng mà thực hiện một giao diện Task cụ thể.

Cấp, điều này loại bỏ một số sức mạnh ý nghĩa đó là vốn có trong việc có thể để xây dựng một lệnh shell như find . -name foo -exec rm {}, nhưng nó mang lại cho bạn khả năng để được cross-nền tảng - để làm việc bất cứ nơi nào và ở khắp mọi nơi . Và nếu bạn bạn thực sự cần thực thi lệnh shell , Ant có nhiệm vụ cho phép các lệnh khác nhau được thực hiện theo hệ điều hành là trên.

Các vấn đề liên quan