Tôi thừa nhận tôi khá mới để gradle nhưng tôi đã không mong đợi để không thể hiểu một cái gì đó đơn giản như ví dụ dưới đây. Tôi có thể đọc tài liệu gradle về kiểm tra xem một thuộc tính dự án đã được thiết lập hay không bằng cách sử dụng một cuộc gọi hasProperty (String propertyName) và tôi đang ngồi ở đây và không có ý tưởng tại sao một cái gì đó cơ bản không hoạt động.Chuyển các thuộc tính sang một gradle xây dựng
Tôi tin rằng tâm trí của tôi phải là quá nhiều "kiến như" định hướng rằng chắc chắn tôi đang thiếu một cái gì đó bình thường cơ bản
task printSystem() << {
println system
println "has property: " + hasProperty("system")
}
và gọi nhiệm vụ đó với các lệnh dưới đây:
$gradle printSystem -Psystem=mySystem
mySystem
has property: null
Vì vậy, câu hỏi của tôi sẽ là:
- Tại sao hệ thống được in nhưng hasProperty trả về
null
? - Tôi nên kiểm tra sự tồn tại của thuộc tính dự án được gọi là "hệ thống" như thế nào?
- Có cách nào khác để kiểm tra thuộc tính dự án chứ không phải thuộc tính hệ thống không?
- Làm cách nào bạn chuyển thuộc tính hệ thống từ dòng lệnh?
Đây là từ, tài liệu gradle và tôi tin rằng tôi đang đọc nó ngay
19.2.1. Kiểm tra các thuộc tính của dự án
Bạn có thể truy cập thuộc tính dự án trong tập lệnh xây dựng của mình đơn giản bằng cách sử dụng tên của nó khi bạn sử dụng biến. Nếu thuộc tính này không tồn tại, một ngoại lệ sẽ được ném và quá trình xây dựng sẽ không thành công. Nếu kịch bản xây dựng của bạn dựa vào các thuộc tính tùy chọn mà người dùng có thể đặt, có thể trong tệp gradle.properties, bạn cần phải kiểm tra sự tồn tại trước khi bạn truy cập chúng. Bạn có thể làm điều này bằng cách sử dụng phương thức hasProperty ('propertyName') trả về true hoặc false.
Bạn đã thấy câu trả lời của tôi không? Liệu nó giải quyết vấn đề anh ta? Nếu có, hãy chấp nhận nó. – Opal
Câu trả lời của bạn đã đến vào chiều thứ Sáu khi tôi đang thưởng thức đồ uống cuối tuần với các đồng nghiệp văn phòng của tôi :-) Tôi đã thử nghiệm giải pháp của bạn hôm nay và nó đã hoạt động. Tôi ước tài liệu sẽ rõ ràng hơn chỉ bằng cách đặt 'dự án.hasProperty ('propertyName') 'trái ngược với những gì nó hiển thị bây giờ. Ngoài ra khi một cái gì đó là nghĩa vụ phải trả lại đúng hay sai và trả về một null thay vì thêm vào sự nhầm lẫn. Cảm ơn nhiều. – Julian