Tôi biết cách chạy một đích trong ANT, nhưng nó cũng kiểm tra thuộc tính "phụ thuộc" và chạy các thuộc tính đó trước mục tiêu. Có cách nào để ngăn chặn điều này hoặc một cách để cấu trúc tập tin ANT của tôi để tôi có thể làm điều này dễ dàng hơn?ANT - Chạy một mục tiêu duy nhất nhưng không phụ thuộc
Trả lời
Tạo phiên bản "không có phiên bản" của mục tiêu. Nếu bạn có
<target name="A" depends="B">
...
</target>
Thay đổi để
<target name="A" depends="B,AwithoutDeps"/>
<target name="AwithoutDeps">
...
</target>
Bây giờ bạn có thể gọi A như bình thường (mà sẽ bắn ra B sau đó AwithoutDeps) hoặc chỉ cần gọi AwithoutDeps một cách rõ ràng và không có DEPS bị sa thải. [Lưu ý rằng "phụ thuộc" gọi là phụ thuộc vào thứ tự]
Tất nhiên, lựa chọn một số tên tốt hơn so với những;)
Tôi nghĩ lựa chọn đơn giản duy nhất của bạn ở đây là tạo một bản sao của mục tiêu được đề cập và khiến nó không có phụ thuộc.
Tôi vừa loại bỏ các thuộc tính phụ thuộc ngay bây giờ (điều này gần như giống nhau), nhưng tôi tự hỏi một giải pháp có thể sạch hơn. – GreenieMeanie
Sẽ là tốt đẹp để có điều này một tùy chọn cho dòng lệnh ant. – user959690
tôi sẽ làm một cái gì đó như thế này:
<target name="doSomethingNoDeps">
...
</target>
<target name="doSomething" depends="doSomeOther">
<antcall target="doSomethingNoDeps"/>
</target>
Một khả năng là sử dụng thuộc tính if
hoặc unless
trên (các) mục tiêu phụ thuộc. Ví dụ:
<target name="dependency1" unless="dependency1.disabled">
<echo>Hello from dependency 1!</echo>
</target>
<target name="dependency2" unless="dependency2.disabled">
<echo>Hello from dependency 2!</echo>
</target>
<target name="main-target" depends="dependency1, dependency2">
<echo>Hello from the main target!</echo>
</target>
Bây giờ bạn có thể chạy Ant với -Ddependency1.disabled=true
và/hoặc -Ddependency2.disabled=true
rời ra khỏi sự phụ thuộc bạn không muốn, nhưng mặc định vẫn sẽ bao gồm chúng.
Và tất nhiên, bạn chỉ có thể có thuộc tính "toàn cầu" dependencies.disabled
nếu điều đó dễ dàng hơn cho bạn.
Nếu bạn muốn làm converse của hành vi này (nơi phụ thuộc được loại trừ theo mặc định), chỉ cần sử dụng if
thay vì unless
(và có tên thuộc tính như "dependency1.enabled" thay vì "tàn tật") .
Tôi đã tạo macro bằng đoạn mã, những gì tôi muốn. Sau đó thực hiện 2 mục tiêu, 1 cuộc gọi macro với "arg1", thứ hai với "arg2". Bạn cũng có thể tạo macro mà không cần tham số aceepting.
một câu trả lời sẽ cho thấy cách giải quyết vấn đề. cho thấy những gì bạn đã làm. –
- 1. Trình xem cây phụ thuộc mục tiêu Ant
- 2. Mục tiêu c - NSMutableSet thuộc tính đối tượng duy nhất
- 3. Trong Ant, tôi có thể sử dụng một thuộc tính bên trong "phụ thuộc" của mục tiêu không?
- 4. Maven: xóa một phụ thuộc duy nhất transitive
- 5. Ant http không thất bại mục tiêu
- 6. In thời gian thực hiện mục tiêu Ant
- 7. Ant có đưa ra cách vượt qua sự phụ thuộc không?
- 8. Các kịch bản xây dựng Ant, antcall, phụ thuộc, v.v.
- 9. Mục tiêu ghi đè trong Ant
- 10. Tập tin Ant Tricky Ant (bao gồm hầu hết, nhưng không phải tất cả thư mục)
- 11. CMake thêm sự phụ thuộc vào mục tiêu cài đặt
- 12. Phụ thuộc mục tiêu giữa hai dự án trong cùng một không gian làm việc
- 13. Mục tiêu của Ant gọi là
- 14. Chạy lệnh trong SCons không phụ thuộc
- 15. Có thể loại trừ một số mục tiêu khỏi mục tiêu Ant trong khi thực thi tập lệnh không?
- 16. Mô tả mục tiêu Echo trong Ant
- 17. requirejs - kết hợp nhiều tệp vào tệp js duy nhất không phụ thuộc vào requirejs
- 18. "lỗi nghiêm trọng U1087: không thể có: và :: người phụ thuộc cho cùng một mục tiêu"
- 19. Maven hoặc Ivy để quản lý phụ thuộc từ Ant?
- 20. Phụ thuộc theo chu kỳ - nhưng lại một lần nữa
- 21. chỉ trả lại một thuộc tính duy nhất "_id"
- 22. Mục tiêu Ant để di chuyển các thư mục ra khỏi một thư mục khác
- 23. bất động sản tiêu chuẩn hoạt động, nhưng tài sản phụ thuộc không trong WPF
- 24. Ant/Eclipse phàn nàn về tạo tác: phụ thuộc
- 25. Ant exec: chuyển hướng tiêu chuẩn ra nhưng không phải lỗi chuẩn
- 26. Làm thế nào tôi có thể chia sẻ tốt nhất các mục tiêu Ant giữa các dự án?
- 27. Người định cư không chạy trên Thuộc tính phụ thuộc?
- 28. Ant xây dựng dự án Android với phụ thuộc lib
- 29. Thực hiện mục tiêu plugin Maven trên mô-đun con, nhưng không phải trên phụ huynh
- 30. Tại sao MongoDB có thể tạo chỉ mục duy nhất nhưng Mongoid không thể?
Rất giống với giải pháp của tôi - Tôi nghĩ sự khác biệt chỉ là một câu hỏi về phong cách. Điều này khai thác chức năng phụ thuộc của kiến, giải pháp của tôi khai thác chức năng "đóng gói". – Jared
Cảm ơn! Điều này có vẻ sạch hơn là sao chép và dán. – GreenieMeanie
@ Jared - Tôi cũng nghĩ về antcall, nhưng nó đắt hơn AFAIK, vì nó thiết lập một bản sao của các thuộc tính và như vậy. Không phải đó là một thỏa thuận lớn mặc dù ... –