Apache Ant là phần mềm dòng lệnh miễn phí, đa nền tảng và mã nguồn mở được triển khai trong Java, được phân phối cùng với dự án Apache, và được thiết kế từ đầu như là một sức mạnh xây dựng hệ thống cho các ứng dụng biên soạn bằng ngôn ngữ lập trình Java.
Tương tự như GNU make
Phần mềm Apache Ant, một chương trình dòng lệnh, tương tự như trình biên dịch mã nguồn mở GNU, nhưng nó được biết là có sự hỗ trợ tốt hơn cho các vấn đề cross-platform khác nhau với việc phát triển các ứng dụng Java.
Hệ thống hoàn thiện xây dựng cho nhiều dự án Java
Là một dự án Apache, phần mềm Apache Ant là hệ thống xây dựng hoàn hảo cho nhiều dự án Java tại Apache, cũng như nhiều dự án mã nguồn mở độc lập khác được viết bằng ngôn ngữ lập trình Java.
Bắt đầu với Apache Ant
Cho dù bạn là người dùng cuối cần sử dụng Apache Ant để biên dịch nguồn của một ứng dụng viết bằng Java hay bạn là một nhà phát triển Java đầy tham vọng, bạn có thể dễ dàng sử dụng Ant Apache trên hệ điều hành được lựa chọn (xem phần dưới đây cho các hệ điều hành được hỗ trợ).
Để thuận tiện cho bạn, phần mềm được phân phối như là một hệ nhị phân được xây dựng trước có thể được sử dụng trên bất kỳ hệ điều hành GNU / Linux nào, 32 và 64-bit hương vị được hỗ trợ. Tất nhiên, những người dùng tiên tiến muốn tối ưu hóa cài đặt cũng có thể lấy gói nguồn của Softoware.
Chỉ cần chạy lệnh & lsquo; ant & rsquo; lệnh trong trình mô phỏng đầu cuối để xem thông báo sử dụng và các tùy chọn dòng lệnh có sẵn. Xin lưu ý rằng đối với một số bản phân phối, Ant yêu cầu phần mềm OpenJDK.
Chạy trên GNU / Linux, Microsoft Windows và Mac OS X
Được viết bằng Java, Apache Ant là một phần mềm nền tảng chạy trên bất kỳ hệ điều hành máy tính nào được hỗ trợ bởi các công nghệ JRE (Java Runtime Environment), bao gồm tất cả các bản phân phối GNU / Linux, cũng như Mac OS X và Microsoft Windows OSes.
Tính năng mới trong phiên bản này:
- Những thay đổi có thể phá vỡ các môi trường cũ hơn:
- thuộc tính tiền tốValues không hoạt động như mong đợi khi được đặt thành false (mặc định). Có vẻ như các tệp tin xây dựng hiện tại dựa vào hành vi sai và mong đợi Ant giải quyết giá trị của các thuộc tính được định nghĩa trong tệp thuộc tính - các tệp tin xây dựng này bây giờ phải đặt thuộc tính prefixValues thành true. Báo cáo Bugzilla 54769
- khi khớp một mục nhập của một zip / tarfileset với một mẫu dấu gạch chéo hàng đầu sẽ bị tước từ tên mục nhập. Hầu hết các lưu trữ không chứa đường dẫn với dấu gạch chéo hàng đầu. Điều này có thể gây ra bao gồm / loại trừ các mẫu mà bắt đầu với một / để ngừng kết hợp bất cứ điều gì. Các mẫu như vậy chỉ được sử dụng để làm việc một cách tình cờ và chỉ trên các nền tảng với nhiều hệ thống tập tin gốc. Báo cáo Bugzilla 53949
- DirectoryScanner và do đó fileset / dirset sẽ âm thầm thả tất cả các đối tượng hệ thống tập tin không phải là các tệp và thư mục theo java.io.File. Điều này ngăn Ant không đọc các ống có tên có thể dẫn tới việc chặn hoặc các hành vi không xác định khác. Báo cáo Bugzilla 56149
- BuildFileTest và BaseSelectorTest đều đã bị phản đối trước BuildFileRule và BaseSelectorRule, và những bài kiểm tra trước đó đã mở rộng các bài kiểm tra cơ bản này đã được chuyển sang các bài kiểm tra JUnit 4 sử dụng quy tắc mới & quot ;. Bất kỳ thử nghiệm bên ngoài nào mà được phân lớp phụ một bài kiểm tra trong không gian làm việc của Ant thay vì BuildFileTest sẽ cần thay đổi để sử dụng các chú thích của JUnit4 hoặc được sửa đổi để mở rộng BuildFileTest trực tiếp. Điều này sẽ không ảnh hưởng đến bất kỳ bài kiểm tra nào đang được thực hiện bởi các hoạt động theo đợt của Ant hoặc không kiểm tra mã của Ant.
- Sửa lỗi:
- / không thành công khi tệp nạp đã được tải từ một URI hoặc một bình và nó nhập khẩu một tập tin từ hệ thống tập tin địa phương thông qua một đường dẫn tuyệt đối. Báo cáo Bugzilla 50953
- có thể nhập cùng một tài nguyên hai lần khi nhập khẩu thông qua các loại tài nguyên khác nhau. Báo cáo Bugzilla 55097
- Một số cuộc gọi đến File # mkdirs có thể rơi vào tình trạng đua đòi, trong đó một chủ đề khác đã tạo ra cùng một thư mục. Báo cáo Bugzilla 55290
- tạo '/' thay vì './' cho thư mục chính của jarfile nhất định. Báo cáo Bugzilla 55049
- 's fixlastline = & quot; true & quot; không hoạt động khi sử dụng bộ lọc một số người đọc. Báo cáo Bugzilla 54672
- một số nơi mà tài nguyên được đọc từ các lọ sẽ rõ ràng tắt bộ nhớ đệm để tránh các vấn đề với việc tải lại các bình. Báo cáo Bugzilla 54473
- AntClassloader bây giờ sẽ bỏ qua các tệp là một phần của đường dẫn lớp chứ không phải các tệp zip khi quét các tài nguyên. Nó sử dụng để ném một ngoại lệ. Báo cáo Bugzilla 53964
- gây ra một NullPointerException khi không có thiết lập destdir. Báo cáo Bugzilla 55949
- vẫn sẽ bao gồm phần Chính của tệp tin trình bày nếu không có tệp kê khai hoặc lồng nhau lồng nhau. Báo cáo Bugzilla 54171
- đọc các trình biên dịch args đã trở nên phòng thủ hơn Bugzilla Report 53754
- không có lực = & quot; true & quot; sẽ không chỉ không ghi đè lên một tập tin chỉ đọc như mong đợi mà còn loại bỏ các tập tin hiện có. Báo cáo Bugzilla 53095
- sẽ loại bỏ liên kết tượng trưng đến các tệp không được bao gồm. Nó vẫn sẽ xóa liên kết tượng trưng tới các thư mục có thể được theo sau ngay cả khi chúng không được bao gồm một cách rõ ràng. loại trừ-Patterns vẫn có thể được sử dụng để bảo vệ các liên kết tượng trưng. Báo cáo Bugzilla 53959
- Đôi khi hoạt động sao chép bằng NIO FileChannels không thành công. Ant sẽ cố gắng sử dụng một hoạt động sao chép dựa trên luồng như dự phòng khi bản sao dựa trên kênh không thành công. Báo cáo Bugzilla 53102 và 54397
- Javadoc.postProcessGeneratedJavadocs () không cho các lớp học mở rộng Báo cáo Javadoc Bugzilla 56047
- Giờ đây, TarInputStream sẽ đọc lưu trữ được tạo bởi các triển khai tar có mã hóa số lớn bằng cách không thêm NUL cuối.
- phương thức isExists () của URLResource trả về các kết quả sai đối với các URL HTTP và FTP.
- Các thay đổi khác:
- hỗ trợ ban đầu cho Java 1.9
- tùy chọn có thể vượt qua System.in đến quá trình xử lý từ xa Bugzilla Report 55393
- bây giờ hỗ trợ bắt lỗi đầu ra của quá trình thực hiện và thiết lập một thuộc tính từ mã trở lại. Báo cáo Bugzilla 48478
- bây giờ có tùy chọn không thành công nếu javadoc phát hành các cảnh báo. Báo cáo Bugzilla 55015
- có thuộc tính mã hóa mới. Báo cáo Bugzilla 39541
- thay đổi đối với JUnitTestRunner và PlainJUnitResultFormatter để làm cho OutOfMemoryErrors ít có khả năng hơn. Báo cáo Bugzilla 45536
- thay đổi DOMElementWriter để làm cho OutOfMemoryErrors ít có khả năng hơn. Báo cáo Bugzilla 54147
- có một binaryOutput thuộc tính mới ngăn Ant ngăn tách ra thành các dòng. Điều này ngăn không cho đầu ra nhị phân bị hỏng nhưng có thể dẫn đến lỗi và sản lượng bình thường bị lẫn lộn. Báo cáo Bugzilla 55667 Báo cáo Bugzilla 56156
- các phần tử lồng nhau bây giờ có thuộc tính inputEncoding tùy chọn có thể được sử dụng để xác định mã hóa các tệp đã đọc mà không sử dụng mã hóa mặc định của nền tảng. Báo cáo Bugzilla 56258
- Nhiệm vụ hiện chấp nhận và hỗ trợ mã hóa nội dung gzip. Báo cáo Bugzilla 49453
- Một kiểu tài nguyên mới hoạt động như một sự kết hợp của s và s chia sẻ cùng một cấu hình nhưng có các thư mục cơ sở khác nhau. Báo cáo Bugzilla 48621
- có một thuộc tính yên tĩnh làm cho các lỗi của nhật ký tác vụ chỉ được kích hoạt. Yêu cầu GitHub Kéo # 1
- bây giờ có một thuộc tính cho phép chạy các bài kiểm tra trong một số chủ đề. Báo cáo Bugzilla 55925
- thêm một lớp ProcessUtil mới cung cấp id quá trình của quá trình hiện tại
- thay đổi để cho phép chạy song song JUnit của Ant bằng cách sử dụng các thư mục tạm thời duy nhất
- Những thay đổi có thể phá vỡ các môi trường cũ hơn:
- thuộc tính tiền tốValues không hoạt động như mong đợi khi được đặt thành false (mặc định). Có vẻ như các tệp tin xây dựng hiện tại dựa vào hành vi sai và mong đợi Ant giải quyết giá trị của các thuộc tính được định nghĩa trong tệp thuộc tính - những tệp tin xây dựng này bây giờ phải đặt thuộc tính prefixValues thành true. Báo cáo Bugzilla 54769
- khi khớp một mục nhập của một zip / tarfileset với một mẫu dấu gạch chéo hàng đầu sẽ bị tước từ tên mục nhập. Hầu hết các lưu trữ không chứa đường dẫn với dấu gạch chéo hàng đầu. Điều này có thể gây ra bao gồm / loại trừ các mẫu mà bắt đầu với một / để ngừng kết hợp bất cứ điều gì. Các mẫu như vậy chỉ được sử dụng để làm việc một cách tình cờ và chỉ trên các nền tảng với nhiều hệ thống tập tin gốc. Báo cáo Bugzilla 53949
- DirectoryScanner và do đó fileset / dirset sẽ âm thầm thả tất cả các đối tượng hệ thống tập tin không phải là các tệp và thư mục theo java.io.File. Điều này ngăn ngừa Ant đọc các ống có tên có thể dẫn tới việc chặn hoặc các hành vi không xác định khác. Báo cáo Bugzilla 56149
- BuildFileTest và BaseSelectorTest đều đã bị phản đối trước BuildFileRule và BaseSelectorRule, và những bài kiểm tra trước đó đã mở rộng các bài kiểm tra cơ bản này đã được chuyển sang các bài kiểm tra JUnit 4 sử dụng quy tắc mới & quot ;. Bất kỳ thử nghiệm bên ngoài nào mà được phân lớp phụ một bài kiểm tra trong không gian làm việc của Ant thay vì BuildFileTest sẽ cần thay đổi để sử dụng các chú thích của JUnit4 hoặc được sửa đổi để mở rộng BuildFileTest trực tiếp. Điều này sẽ không ảnh hưởng đến bất kỳ bài kiểm tra nào đang được thực hiện bởi các hoạt động theo đợt của Ant hoặc không kiểm tra mã của Ant.
- Sửa lỗi:
- / không thành công khi tệp nạp đã được tải từ một URI hoặc một bình và nó nhập khẩu một tập tin từ hệ thống tập tin địa phương thông qua một đường dẫn tuyệt đối. Báo cáo Bugzilla 50953
- có thể nhập cùng một tài nguyên hai lần khi nhập khẩu thông qua các loại tài nguyên khác nhau. Báo cáo Bugzilla 55097
- Một số cuộc gọi đến File # mkdirs có thể rơi vào tình trạng đua đòi, trong đó một chủ đề khác đã tạo ra cùng một thư mục. Báo cáo Bugzilla 55290
- tạo '/' thay vì './' cho thư mục chính của jarfile nhất định. Báo cáo Bugzilla 55049
- 's fixlastline = & quot; true & quot; không hoạt động khi sử dụng bộ lọc một số người đọc. Báo cáo Bugzilla 54672
- một số nơi mà tài nguyên được đọc từ các lọ sẽ rõ ràng tắt bộ nhớ đệm để tránh các vấn đề với việc tải lại các bình. Báo cáo Bugzilla 54473
- AntClassloader bây giờ sẽ bỏ qua các tệp là một phần của đường dẫn lớp chứ không phải các tệp zip khi quét các tài nguyên. Nó sử dụng để ném một ngoại lệ. Báo cáo Bugzilla 53964
- gây ra một NullPointerException khi không có thiết lập destdir. Báo cáo Bugzilla 55949
- vẫn sẽ bao gồm phần Chính của tệp tin trình bày nếu không có tệp kê khai hoặc lồng nhau lồng nhau. Báo cáo Bugzilla 54171
- đọc các trình biên dịch args đã trở nên phòng thủ hơn Bugzilla Report 53754
- không có lực = & quot; true & quot; sẽ không chỉ không ghi đè lên một tập tin chỉ đọc như mong đợi mà còn loại bỏ các tập tin hiện có. Báo cáo Bugzilla 53095
- sẽ loại bỏ liên kết tượng trưng đến các tệp không được bao gồm. Nó vẫn sẽ xóa liên kết tượng trưng tới các thư mục có thể được theo sau ngay cả khi chúng không được bao gồm một cách rõ ràng. loại trừ-Patterns vẫn có thể được sử dụng để bảo vệ các liên kết tượng trưng. Báo cáo Bugzilla 53959
- Đôi khi hoạt động sao chép bằng NIO FileChannels không thành công. Ant sẽ cố gắng sử dụng một hoạt động sao chép dựa trên luồng như dự phòng khi bản sao dựa trên kênh không thành công. Báo cáo Bugzilla 53102 và 54397
- Javadoc.postProcessGeneratedJavadocs () không cho các lớp học mở rộng Báo cáo Javadoc Bugzilla 56047
- Giờ đây, TarInputStream sẽ đọc lưu trữ được tạo bởi các triển khai tar có mã hóa số lớn bằng cách không thêm NUL cuối.
- phương thức isExists () của URLResource trả về các kết quả sai đối với các URL HTTP và FTP.
- Các thay đổi khác:
- hỗ trợ ban đầu cho Java 1.9
- tùy chọn có thể vượt qua System.in đến quá trình xử lý từ xa Bugzilla Report 55393
- bây giờ hỗ trợ bắt lỗi đầu ra của quá trình thực hiện và thiết lập một thuộc tính từ mã trở lại. Báo cáo Bugzilla 48478
- bây giờ có tùy chọn không thành công nếu javadoc phát hành các cảnh báo. Báo cáo Bugzilla 55015
- có thuộc tính mã hóa mới. Báo cáo Bugzilla 39541
- thay đổi đối với JUnitTestRunner và PlainJUnitResultFormatter để làm cho OutOfMemoryErrors ít có khả năng hơn. Báo cáo Bugzilla 45536
- thay đổi DOMElementWriter để làm cho OutOfMemoryErrors ít có khả năng hơn. Báo cáo Bugzilla 54147
- có một binaryOutput thuộc tính mới ngăn Ant ngăn tách ra thành các dòng. Điều này ngăn không cho đầu ra nhị phân bị hỏng nhưng có thể dẫn đến lỗi và sản lượng bình thường bị lẫn lộn. Báo cáo Bugzilla 55667 Báo cáo Bugzilla 56156
- các phần tử lồng nhau bây giờ có thuộc tính inputEncoding tùy chọn có thể được sử dụng để xác định mã hóa các tệp đã đọc mà không sử dụng mã hóa mặc định của nền tảng. Báo cáo Bugzilla 56258
- Nhiệm vụ hiện chấp nhận và hỗ trợ mã hóa nội dung gzip. Báo cáo Bugzilla 49453
- Một kiểu tài nguyên mới hoạt động như một sự kết hợp của s và s chia sẻ cùng một cấu hình nhưng có các thư mục cơ sở khác nhau. Báo cáo Bugzilla 48621
- có một thuộc tính yên tĩnh làm cho các lỗi của nhật ký tác vụ chỉ được kích hoạt. Yêu cầu GitHub Kéo # 1
- bây giờ có một thuộc tính cho phép chạy các bài kiểm tra trong một số chủ đề. Báo cáo Bugzilla 55925
- thêm một lớp ProcessUtil mới cung cấp id quá trình của quá trình hiện tại
- thay đổi để cho phép chạy song song JUnit của Ant bằng cách sử dụng các thư mục tạm thời duy nhất
- Sửa lỗi:
- nuốt phải mã trạng thái của các tác vụ lồng nhau.
- điều kiện chủng tộc có thể khiến nhiệm vụ của các công trình xây dựng song song can thiệp vào nhau.
- vẫn không hoạt động bình thường khi sử dụng smtps.
- sử dụng các thuộc tính thuộc thuộc tính if và unless các không gian tên đã làm macrodef thất bại.
- Các thay đổi nhiệm vụ Ant 1.8 exec đã làm chậm exec xuống thu thập thông tin
- Apt không có sẵn trong JDK 1.8
- Các thay đổi khác:
- Tài liệu sửa cho if / except các thuộc tính. PR 55359.
- Các mục nhập kho với tên liên kết dài giờ được xử lý giống như các mục có tên dài.
- Thêm thuộc tính 'skipNonTest' vào và tác vụ để cho phép các tác vụ bỏ qua các lớp không chứa các bài kiểm tra.
- giờ hỗ trợ một bộ lọc được lồng vào để xác định.
- có thể được gõ.
- xây dựng trình cài đặt pkg của Mac OS X
- new nếu và không gian tên XML có sẵn trên tất cả các tác vụ và các phần tử lồng nhau
- Các tiện ích Zip Zip bị vô hiệu theo mặc định
- Tải các phụ thuộc bên ngoài được cố định trong nhiệm vụ JUnit
- Bảng định kiểu mặc định của JUnitreport giờ tương thích với JDK 1.7
- Đề xuất nâng cấp lên jsch 0.1.50 cho người dùng các tác vụ ssh / scp dưới Java 1.7
- Các bản sửa lỗi và cải tiến khác được ghi trong WHATSNEW
- Đây là bản phát hành bản vá lỗi bảo mật nhằm khắc phục một tiềm năng từ chối dịch vụ tấn công vector trong công việc bzip2.
- Thực hiện cải tiến trong việc kiểm tra thư mục.
- Nhiệm vụ XSLT sẽ nhận lại đường dẫn lớp học (bugrep 49271).
- Sự phân biệt giữa các nhiệm vụ chính và các tác vụ tùy chọn được bãi bỏ.
- Nhiều sửa lỗi và cải tiến được ghi lại trong Bugzilla và WHATSNEW.
- Sự phát hành chính tập trung vào việc sửa lỗi và cải tiến
hiệu suất.
- Hỗ trợ Java 6 đã được tăng cường và JavaFX được hỗ trợ bởi tác vụ kịch bản.
- Môi trường sử dụng Oracle Java Standard Edition
Tính năng mới trong phiên bản 1.9.4:
Tính năng mới trong phiên bản 1.9.3:
hộp thư của
Các tham số của
Tính năng mới trong phiên bản 1.9.1:
Tính năng mới trong phiên bản 1.8.4:
Yêu cầu :
Bình luận không