Thông số copy
trong bản sao Gradle nội dung của một thư mục nếu đường dẫn được chỉ định trong from
là một thư mục.
Một giải pháp là chỉ định thư mục đích trong jar
bằng cách sử dụng into
directive.
processResources {
from 'data'
from 'publicFolder'
}
task data(type: Copy) {
from 'data' into 'data'
}
task publicFolder(type: Copy) {
from 'public' into 'public'
}
Thao tác này sẽ đặt nội dung hoặc thư mục gốc vào thư mục có cùng tên trong bình. Nhưng như bạn có thể thấy, bạn sẽ cần lặp lại tên thư mục trong phạm vi đóng cửa into
.
Cách giải quyết khác là có một thư mục mẹ cho các thư mục tài nguyên này và sử dụng thư mục mẹ này trong thông số copy
.
Dưới đây là một cách để bạn có thể cấu trúc các thư mục tài nguyên:
<project-folder>
|
--> res
|
--> public
--> data
Sau đó, trong copy
spec của processResources
, bạn có thể làm như sau:
processResources {
from 'res'
}
này sẽ tạo ra các thư mục public
và data
trong tệp jar cuối cùng như bạn muốn.
Nguồn
2015-01-15 16:54:40
Có thể nói thư mục "sao chép từ 'projectRoot' và chỉ có thư mục 'dữ liệu' và 'công khai'"? –
Sử dụng các bộ lọc cho tên thư mục bằng cách nào đó không hoạt động chính xác cho tôi. Tuy nhiên, tôi đã chỉnh sửa câu trả lời bằng giải pháp chính không liên quan đến việc sắp xếp lại các thư mục. Hy vọng rằng sẽ giúp. Tôi đồng ý rằng cách lý tưởng là nói _copy từ thư mục 'projectRoot' và chỉ bao gồm các thư mục mà tôi muốn_. Sẽ đăng một giải pháp cho rằng nếu tôi nhận được một. –
Cảm ơn bạn đã giải pháp "từ vào". Đó là điều tôi đang tìm kiếm. Vấn đề là nó không làm việc cho tôi. Tôi nhận được lỗi "> Không thể tìm thấy phương thức công khai() cho các đối số [build_akni020h40dn3k7vwmwbm63ee $ _run_closure2_closure3 @ 4d266391] trên dự án gốc" –