Tôi phụ thuộc vào một vài tạo tác mà tôi cần để biên dịch và chạy ứng dụng của mình.Tại sao tôi phải chỉ định cả 'thời gian chạy' và 'biên dịch' cho cùng một phụ thuộc?
Theo các tài liệu Gradle, cấu hình thời gian chạy kéo dài cấu hình biên dịch, vì vậy chắc chắn thêm một sự phụ thuộc sử dụng runtime
ngụ ý một ngầm compile
phụ thuộc?
Ít nhất đó là giả định của tôi, nhưng nó không hoạt động. Khi chỉ phụ thuộc vào tạo tác sử dụng runtime
, dự án của tôi không biên dịch nữa. Tôi nghĩa là phải:
compile 'oauth.signpost:signpost-core:1.2.1.2'
runtime 'oauth.signpost:signpost-core:1.2.1.2'
để áp dụng cho cả hai biên dịch và thấy các lớp Signpost khi chạy.
Tôi có thiếu gì đó không? Điều đó có vẻ không đúng ...
Tôi thấy - kỳ quặc. Chỉ cần cố gắng để hiểu cách làm việc này sau đó. Nhìn vào http://www.gradle.org/0.9.1/docs/userguide/userguide_single.html#sec:java_plugin_and_dependency_management, điều đó có nghĩa là bất kỳ cấu hình nào trong hình 20.2 là sự kết hợp của tất cả các cấu hình có mũi tên đi vào nó ? Suy nghĩ về 'mở rộng' theo kiểu 'thừa kế' cổ điển, người ta sẽ cho rằng ngược lại. – Matthias
Oh và: có đúng là giả định rằng cấu hình 'thời gian chạy' của Gradle tương ứng với phạm vi 'được cung cấp' của Maven không? – Matthias
Trong biểu đồ hướng dẫn sử dụng 20.2, bất kỳ cấu hình nào cũng là sự kết hợp của tất cả các đường dẫn * đi *, ví dụ: 'testRuntime' bao gồm mọi thứ từ' runtime' và 'compile', beacuse mũi tên đi cho thấy' testRuntime' mở rộng 'runtime' –