Điều này có thể liên quan đến rất giống known bug in Ant 1.8.2.
Các bugfix for Ant 1.8.3 đã cam kết, nhưng Apache Ant 1.8.3 vẫn chưa được phát hành như của ngày 25 tháng 1 năm 2012. Các WHATSNEW mô tả cho bugfix này là:
<junitreport> did not work in embedded environments on JDK 7.
Bugzilla Report 51668.
Khi 1.8.3 Ant được phát hành và được tích hợp vào plugin Eclipse Ant, vấn đề này cần được giải quyết.
Trong thời gian chờ đợi, bạn có thể chỉnh sửa tập lệnh xây dựng của mình để chỉ chạy mục tiêu JUnitReport nếu chạy Ant từ dòng lệnh, thay vì từ trong Eclipse. Để thực hiện xác định này, hãy tìm tệp có trong thư mục % ANT_HOME%/lib thường xuyên không có trong thư mục plugin Eclipse Ant của bạn (hoặc tạo tệp ở đó), sau đó đặt thuộc tính nếu tệp được phát hiện. VÍ DỤ.
Chỉ cần trước khi kết thúc mục tiêu JUnit của bạn:
<available file="${ant.home}/lib/ant.pom" property="full.ant"/>
Vào đầu mục tiêu JUnitReport của bạn:
<target name="junitreport" description="Create a consolidated test results report" if="full.ant">
Các mảnh vỡ Ant trên làm việc vì ant.home được thiết lập để các Thư mục Eclipse Ant Plugin chỉ khi Ant được chạy từ bên trong Eclipse. Khi Ant được chạy từ một dòng lệnh, ant.home sẽ khớp với biến môi trường ANT_HOME của bạn. Ngoài ra còn có một thuộc tính Ant eclipse.running Ant, nhưng tôi không thể phát hiện thuộc tính này.
Một tùy chọn tạm thời khác là tải xuống các tệp JAR mới nhất của Ant hàng đêm được xây dựng từ this link trên trang dự án Apach Ant, sau đó đặt các tệp JAR đó trong thư mục con plugin Eclipse Ant tương ứng. Không đảm bảo điều này sẽ làm việc.
Cảm ơn câu trả lời của bạn. Có lẽ câu của tôi không rõ ràng. Tôi muốn vô hiệu hóa 'tính năng xử lý an toàn' nhưng tôi _do_ cần junitreport. – Almer